[BOJ-#12605] 단어순서 뒤집기

신지·2023년 7월 26일
0

BOJ

목록 보기
3/15
post-thumbnail

문제

문제 링크
스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 이루어져 있다. 단어 사이에는 하나의 스페이스만 들어간다.

입력

첫 행은 N이며, 전체 케이스의 개수이다.

N개의 케이스들이 이어지는데, 각 케이스는 스페이스로 띄어진 단어들이다. 스페이스는 라인의 처음과 끝에는 나타나지 않는다. N과 L은 다음 범위를 가진다.

  • N = 5
  • 1 ≤ L ≤ 25

출력

각 케이스에 대해서, 케이스 번호가 x일때 "Case #x: " 를 출력한 후 그 후에 이어서 단어들을 반대 순서로 출력한다.

Code

Github 링크

import sys

input = sys.stdin.readline

test_case = int(input())

for i in range(test_case):
    list_ = list(input().split())

    print("Case #%i: " %(i+1), end="")
    for j in list_[::-1] :
        print(j,end=" ")
    if j != list_[0]:
        print("")

코드 설명

import sys

input = sys.stdin.readline

test_case = int(input())

빠른 입력을 받을 수 있도록 input을 선언하고 test case의 개수를 받는다.


for i in range(test_case):
    list_ = list(input().split())

    print("Case #%i: " %(i+1), end="")
    for j in list_[::-1] :
        print(j,end=" ")
    if j != list_[0]:
        print("")

test case만큼 for문을 실행한다.

이때, split을 이용하여 문장을 띄어쓰기 단위로 끊어 리스트에 저장한다.

Case와 번호를 출력하고, 리스트를 거꾸로 출력한다. end= " " 를 이용하여 단어마다 띄어쓰기를 삽입하고, 만약 리스트의 맨 앞에 있는 단어와 출력해야 할 단어가 같을 경우 문장을 구분하기 위해 빈 print문을 한 번 실행한다.

리뷰

단어를 뒤에서부터 꺼내긴 하지만 스택 문제라고 보긴 애매한 것 같다.

0개의 댓글