[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. 생각

  1. 자료구조 스택을 이용할 수 있지만, 스택을 사용하지 않고도 문자열을 잘 활용하면 똑같이 구현할 수 있습니다.

  2. 먼저, c++의 경우 문장을 getline()을 이용하여 문장 단위로 입력을 받습니다. 한 문자씩 순회하며 문자가 공백(‘ ‘)이 아닐 경우 string인 tmp에 합칩니다. 문자가 공백(‘ ‘)일 경우 tmp를 뒤집어 출력합니다.

  3. python에서는 입력을 받을 때 공백(‘ ‘)을 기준으로 리스트에 담았습니다. sys.stdin.readline().split()에서 split()을 쓰지 않는다면 string 변수에는 문자열 형태로 한 문장으로 저장되고, split()을 쓴다면 공백(‘ ‘)을 기준으로 string 변수에는 리스트 형태로 한 단어씩 저장됩니다. 다음으로 한 단어씩 순회하며 거꾸로([::-1]) 출력합니다.

3. 소스코드 (C++)

4. 소스코드 (Python)


터미널의 입출력 화면 예제1 (C++)

9093_1

터미널의 입출력 화면 예제1 (Python)

9093_2 9093_3