haju__log

[python][백준/BOJ] 10798번 : 세로읽기 본문

카테고리 없음

[python][백준/BOJ] 10798번 : 세로읽기

haju 2023. 6. 29. 14:10

https://www.acmicpc.net/problem/10798

 

10798번: 세로읽기

총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’

www.acmicpc.net

 

✅ 문제풀이

  • 예제입력 1에서는 문제없이 풀 수 있지만, 예제입력 2 에서 각 줄의 길이가 다를 때 세로읽기를 진행하게 되면 길이가 이미 끝난 짧은 길이의 문자열에서 out of range 가 발생한다.

  • 따라서, 입력을 받아 저장한 후 5개의 문자열 중 길이가 가장 긴 문자열을 maxlen에 저장하고, 
  • 반복문을 돌면서 maxlen보다 길이가 작은 문자열에는 부족한 길이만큼(amxlen-len(l[i]))공백 문자를 추가해준다. 
  • 최종적으로 출력할 때, 공백 문자열인 경우를 제외하고 출력해준다.
import sys

l=[]
maxlen=0
for i in range(5):
    tmp=list(sys.stdin.readline().strip())
    if len(tmp)>maxlen:
        maxlen=len(tmp)
    l.append(tmp)

for i in range(5):
    if len(l[i])<maxlen:
        for j in range(maxlen-len(l[i])):
            l[i].append(' ')
for i in range(maxlen):
    for j in range(5):
        if l[j][i]!=' ':
            print(l[j][i],end='')