삽집하는 개발들/알고리즘

[82일차][백준][구현, 문자열][9093]단어 뒤집기

악투 2023. 11. 29. 18:45
반응형

문제 설명

문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.

 

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.

 

출력

각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.

 

예제 입력, 예제 출력

2
I am happy today
We want to win the first prize
I ma yppah yadot
eW tnaw ot niw eht tsrif ezirp

 

 

코드 및 설명

import sys

t = int(sys.stdin.readline())
for m in range(t):
  t_arr = list(sys.stdin.readline().split(" "))
  answer = ""
  for j, t_str in enumerate(t_arr):
    t_str = t_str.split("\n")[0]  
    for i in range(len(t_str)-1, -1, -1):    
      answer += t_str[i]
    
    answer += "" if j == len(t_arr) else " "
    
  print(answer)

 

이 문제는 문자열에 개수가 주어지고, 문자열을 입력 받아 공백 기준으로 단어들을 뒤집어서 출력 시켜주면 된다.

 

먼저 t에 입력받을 문자열의 개수를 받아주고,

 

t_arr에 받은 문자열을 배열화해주고

 

배열안에 첫번째 단어부터 불러와서 for문을 t_str의 길이만큼 -1씩 빼주면서 answer안에 단어를 저장한다.

 

그러면 뒤집어서 단어들이 저장되고, 완료 후 공백 처리도 해줘야하기 때문에 t_arr길이가 j와 같으면 공백을 넣지않고

 

나머지는 단어마다 공백이 있기때문에 넣어준다.

 

반응형