[알고리즘]/BOJ

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

개발새발주발 2023. 2. 21. 18:34
728x90

1.문제

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

 

10798번: 세로읽기

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

www.acmicpc.net

 

 

2. 풀이 

해결과제 : 5줄의 단어를 세로로 읽어내야한다. 이 과정을 위해서는 단어를 반복하며 첫번째 열부터 마지막열까지 읽어내야하는데 .. 단어의 길이만큼 5번씩 반복을해야한다. 

 

그런데 이때 문제가 발생했다. 길이가 다른 5개의 단어를 받아오기 때문에 오류가 생긴다는 점 ! 

그 문제를 방지하기 위해 if문을 사용한다. 

3. 코드 

lines= []
length = [] # 입력받는 단어 각각의 길이를 나타내는 length 
ans = ''
for _ in range(5):
    line=input()
    length.append(len(line))
    lines.append(line)



for j in range(max(length)):
    for i in range(5):
    # if문에서 j가 length[i], 즉 index 범위를 벗어난다면 글자 추가가 일어나지 않는다 ! 
        if j< length[i]:
            ans+=lines[i][j]

print(ans)

 

 

 

4. 오답 

lines= []
length = []
ans = ''
for _ in range(5):
    line=input()
    length.append(len(line))
    lines.append(line)
    
for i in range(5):
    for j in range(max(length)):
        for k in range(5):
            ans+=lines[k][j]

풀이에서 말했던 과정이다. index를 벗어나는 오류가 발생한다.