문자열이 하나 주어졌을 때, 문자열에 포함된 모든 단어의 순서를 거꾸로 뒤집는 것이 목표입니다. 파이썬에서는 split() 메서드와 reversed() 함수를 사용하면 아주 간단하게 구현할 수 있습니다. 먼저 예시 테스트 케이스를 살펴보겠습니다.
입력:
string = "I am a python programmer"
출력:
programmer python a am I
입력:
string = "tutorialspoint is a educational website"
출력:
website educational a is tutorialspoint
그럼 아래 단계를 따라 목표를 달성해 보겠습니다.
알고리즘
1. 문자열을 초기화한다.
2. 공백을 기준으로 문자열을 분리(split)하고, 결과 리스트를 words라는 변수에 저장한다.
3. reversed() 함수를 사용해 words 리스트의 순서를 뒤집는다.
4. 결과를 다시 리스트로 변환한다.
5. join() 함수로 단어들을 이어 붙인 뒤 출력한다.
위 알고리즘을 실제 코드로 구현한 예시입니다.
예제 1
## 문자열 초기화
string = "I am a python programmer"
## 공백을 기준으로 문자열 분리
words = string.split()
## reversed() 함수로 단어 순서 뒤집기
words = list(reversed(words))
## 단어들을 연결하여 출력
print(" ".join(words))
실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
programmer python a am I
이번에는 다른 입력값으로 코드를 한 번 더 실행해 보겠습니다.
예제 2
## 문자열 초기화
string = "tutorialspoint is a educational website"
## 공백을 기준으로 문자열 분리
words = string.split()
## reversed() 함수로 단어 순서 뒤집기
words = list(reversed(words))
## 단어들을 연결하여 출력
print(" ".join(words))
실행 결과
프로그램을 실행하면 다음과 같은 출력을 얻을 수 있습니다.
website educational a is tutorialspoint
마무리
이처럼 파이썬에서는 split(), reversed(), join() 세 가지 기능만 조합하면 별도의 반복문 없이도 문자열의 단어 순서를 손쉽게 뒤집을 수 있습니다. 참고로 string.split()[::-1] 슬라이싱 문법이나 ' '.join(string.split()[::-1]) 형태로 한 줄로 처리하는 방법도 있으니 상황에 맞게 활용해 보세요. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.