backjeon/Bronze

Baekjoon(백준) - 10798 (세로읽기) | Python

SecLogs YJ 2026. 3. 14. 10:11
words = [input().strip() for _ in range(5)]

result = ""
for j in range(15):
    for i in range(5):
        if j < len(words[i]):
            result += words[i][j]

print(result)

 

이 코드는 가로로 입력된 5개의 문자열을 세로 방향으로 읽어, 하나의 문자열로 출력하는 프로그램이다.

 

1. 리스트 컴프리헨션

words = [input().strip() for _ in range(5)]

 

리스트 컴프리헨션을 이용하여 5개의 문자열을 리스트로 저장한다.

 

  • input() : 문자열 입력
  • strip() : 문자열 앞뒤 공백 제거
  • for _ in range(5) : 5번 반복
  • _ : 반복 변수이지만 사용하지 않을 때 관례적으로 사용하는 표기법

예시 입력

AABCDD
afzz
09121
a8EWg6
P5h3kx

 

예시 출력 결과

['AABCDD', 'afzz', '09121', 'a8EWg6', 'P5h3kx']

 

 

2. 문자열 변수 생성

result = ""

 

세로로 읽은 문자를 순서대로 이어 붙일 문자열 변수를 생성한다.

 

 

3. 반복문(range)

for j in range(15):

 

각 단어의 최대 길이가 15이므로, 열을 기준으로 0부터 14까지 반복한다.

 

 

4. 중첩 반복문

    for i in range(5):
        if j < len(words[i]):
            result += words[i][j]

 

각 열마다 위에서 아래 방향으로 문자열을 확인한다.

즉, 세로 방향으로 문자열을 확인한다.

 

각 단어의 길이는 서로 다를 수 있으므로, 문자가 존재하는 경우에만 읽도록 조건문을 사용해 준다.

조건에 만족하는 문자를 result 문자열 뒤에 계속 이어붙어붙인다.

 

 

5. 결과 출력

print(result)

 

세로 읽기 순서로 이어 붙인 문자열을 출력한다.