Programming/SW Expert Academy

SW Expert Academy // 5356

껨코 2021. 1. 20. 14:09

SW Expert Academy 5356번 "의석이의 세로로 말해요" 문제입니다.

TC = int(input())
for tc in range(1, TC+1):
    lst = [list(input()) for _ in range(5)]
    string = ""
    while (len(lst[0])+len(lst[1])+len(lst[2])+len(lst[3])+len(lst[4])) > 0:
        if len(lst[0]) > 0:
            string += lst[0].pop(0)
         
        if len(lst[1]) > 0:
            string += lst[1].pop(0)
 
        if len(lst[2]) > 0:
            string += lst[2].pop(0)
             
        if len(lst[3]) > 0:
            string += lst[3].pop(0)
             
        if len(lst[4]) > 0:
            string += lst[4].pop(0)
             
    print("#%s"%tc, string)

5줄의 문자열을 입력받아 세로로 읽은 것을 출력하는 문제다.

 

5줄로 제한해놨기 때문에 5개의 리스트가 들어간 이중 리스트를 처음에 만들어서 입력값을 받는다.

 

그 후 리스트의 길이들의 합이 0이 될때까지 한 줄씩 이동하면서 값을 빼면 된다.

 

처음에 리스트로 입력 받았기에 문자열도 문자 각각이 리스트의 요소로 들어가있기 때문에 리스트의 pop메서드를 사용할 수 있다.

 

pop메서드는 리스트의 요소를 제거하는 메서드인데 pop(index) 형식으로 사용하게 되면 리스트의 인덱스 index 번의 요소를 빼서 리턴해준다.

 

따라서 pop메서드를 활용하여 앞의 것부터 빼줘서 string 변수에 추가해준다.

 

pop을 사용하기 전에 리스트의 길이가 1이상인지 확인을 해주지 않으면 에러가 발생한다.