문장이 주어지면, 문장의 단어의 알파벳을 뒤집어서 출력한다.
I am happy today -> today happy am I 가 아니라, I ma yppah yadto 이다!!
각 문장별로 입력을 받은 후, 단어로 split한 뒤 각 단어를 뒤집는다.
문자열을 뒤집는 방법에는 여러가지가 있다.
1) for문 활용
s = "abcde"
s_reverse = '' # 기존 문자열을 역순으로 담아줄 빈 문자열 선언
for char in s:
s_reverse = char + s_reverse
print(s_reverse) # edcba
2) 파이썬에서 제공하는 reverse()
사용
s = "abcde"
print(''.join(reversed(s))) # edcba
3) 문자열 슬라이싱
s = "abcde"
print(s[::-1]) # edcba
print(s[3:0:-1]) # dcb, 3번 인덱스부터 1번 인덱스까지 역순으로 출력
효율성이 별로이고 쉽게 떠올릴 수 있는 for문을 활용한 방법은 제외하고, 슬라이싱이 가장 간단해 보여서 슬라이싱을 활용했다.
import sys
N = int(input())
for _ in range(N):
str = sys.stdin.readline().rstrip()
words = list(str.split())
reverse_words = []
for word in words:
reverse_words.append(word[::-1])
answer = " ".join(reverse_words)
print(answer)
단어를 뒤집어서 리스트에
append()
했기 때문에reverse_words = ['I', 'ma', 'yppah', 'yadot']
형태로 단어가 들어있다.
리스트를 문자열로 반환하기 위해 리스트 요소별로 공백을 삽입해join()
했다.