알고리즘 공부/백준

백준 9093번 단어 뒤집기 파이썬

당장하자 2022. 5. 4. 21:28

내 코드

단어를 split()으로 나눠서 각각 단어를 reverse하는 방법으로 구현했다.

from sys import stdin

def reverseStr(inp_str):
    li_str = list(inp_str)
    li_str.reverse()
    reverse_str = ''.join(str(s) for s in li_str)
    return reverse_str

N = int(stdin.readline())
for line in stdin:
    word = line.split()
    for i in range(len(word)):
        word[i] = reverseStr(word[i])
    
    reverse_line = ' '.join(w for w in word)
    print(reverse_line)

 

백준 모범답안

# kij971202님의 풀이입니다.
import sys

for i in range(int(sys.stdin.readline())):
    # [::-1] 이걸로 입력한 단어로 reverse 
    # .split()으로 공백으로 구분하여 list로 쪼갬 
    word = sys.stdin.readline()[::-1].split() # ['yadot', 'yppah', 'ma', 'I'], ['ezirp', 'tsrif', 'eht', 'niw', 'ot', 'tnaw', 'eW']
    word.reverse() # ['I', 'ma', 'yppah', 'yadot'] , ['eW', 'tnaw', 'ot', 'niw', 'eht', 'tsrif', 'ezirp']
    

    # " ".join(list) 로 단어들을 이어 붙임 
    print( ' '.join(word))  # I ma yppah yadot , eW tnaw ot niw eht tsrif ezirp

 

새롭게 알게 된 점

[::-1] 으로 문자열을 뒤집을 수 있다.