haju__log
[python][백준/BOJ] 10798번 : 세로읽기 본문
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='')