첫번째 조건은 잘 풀었는데 두번째 조건은 고민하는 시간이 오래 걸렸다.
주어진 리스트에서 세로로 읽으려면 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