[python] 백준 10798 - 세로 읽기

📍 [ 문제 8 ] 백준 10798 - 세로 읽기

백준 1157 - 세로 읽기

💡 나의 풀이

첫번째 조건은 잘 풀었는데 두번째 조건은 고민하는 시간이 오래 걸렸다.

주어진 리스트에서 세로로 읽으려면 2중 for문이 선언되어야한다.
만약, 입력이 빈칸없이 연속으로 주어진다면 단순하게 구할 수 있지만 입력에 빈칸이 존재한다면 조건문을 붙여줘야한다.

해결방법의 흐름은 크게 2가지가 있다.

먼저, 입력이 n줄로 한정되어있다면 반복문을 n으로 변경하면 되지만, 입력이 몇 줄이라고 주어지지 않을때는 max(len)을 구해야한다.

그리고, max(len)의 i가 j보다 크거나 같다면 continue를 사용해 상위 코드로 올라가서 건너뛰고 그렇지 않다면 값을 출력해주면 된다.

'''
ABCDE
abcde
01234
FGHIJ
fghij

AABCDD
afzz
09121
a8EWg6
P5h3kx
'''
s = [input() for i in range(5)]
max_length = 0

if len(s) > max_length:
    max_length = len(s)

# 방법 1
for i in range(max_length):
    for j in range(len(s)):
        if i >= len(s[j]):
            continue
        else:
            print(s[j][i], end='')

# 방법 2
for i in range(max_length):
    for j in s:
        if i >= len(j):
            print(j[i], end='')

👉🏽 Aa0FfBb1GgCc2HhDd3IiEe4Jj
👉🏽 Aa0aPAf985Bz1EhCz2W3D1gk

좋은 웹페이지 즐겨찾기