[BOJ][C++][Python] 백준 9093번 단어뒤집기
Updated:
9093번 단어뒤집기
1. 문제 정보
백준 온라인 저지 [9093번 단어뒤집기] 문제의 링크입니다.
문제
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.
출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.
예제 입력1
2
I am happy today
We want to win the first prize
예제 출력1
I ma yppah yadot
eW tnaw ot niw eht tsrif ezirp
시간 / 메모리 제한
1초 / 128MB
2. 생각
-
자료구조 스택을 이용할 수 있지만, 스택을 사용하지 않고도 문자열을 잘 활용하면 똑같이 구현할 수 있습니다.
-
먼저, c++의 경우 문장을 getline()을 이용하여 문장 단위로 입력을 받습니다. 한 문자씩 순회하며 문자가 공백(‘ ‘)이 아닐 경우 string인 tmp에 합칩니다. 문자가 공백(‘ ‘)일 경우 tmp를 뒤집어 출력합니다.
-
python에서는 입력을 받을 때 공백(‘ ‘)을 기준으로 리스트에 담았습니다. sys.stdin.readline().split()에서 split()을 쓰지 않는다면 string 변수에는 문자열 형태로 한 문장으로 저장되고, split()을 쓴다면 공백(‘ ‘)을 기준으로 string 변수에는 리스트 형태로 한 단어씩 저장됩니다. 다음으로 한 단어씩 순회하며 거꾸로([::-1]) 출력합니다.
3. 소스코드 (C++)
4. 소스코드 (Python)