[백준] 9093번. 단어 뒤집기 (파이썬)

nayeoniee·2021년 9월 22일
0

Algorithm

목록 보기
27/29

문제

문제 링크

문장이 주어지면, 문장의 단어의 알파벳을 뒤집어서 출력한다.
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()했다.

profile
정말 할 수 있어!

0개의 댓글