[Python] 백준 10798 | 세로읽기

heige·2023년 12월 8일
0

BOJ

목록 보기
21/46
post-thumbnail

문제

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

풀이

첫 시도

li = []
for i in range(5) :
    li.append(list(input().split()))

for j in range(15) :
    for i in range(5) :
        if j < len(li[i]): 
            print(li[i][j], end='')
  • if j < len(li[i]): 조건문 지정해주는 이유는 행마다 열의 갯수가 다르기 때문에 range를 초과하는 오류를 막기 위해서다.

위 코드를 실행했을 때,

열을 기준으로 행만 바뀌면서 출력되어야 하는데 자꾸만 순서대로 출력이 되는 것이었다...

➡️ 리스트를 입력 받을 때 split()으로 공백 구분해서 받았더니 그런 것이었다. 리스트의 내용을 출력해보자.

행마다 하나의 요소로 묶어서 들어가있었다.모두 열이 하나였던 것 ㅋㅋ
제대로 출력 안 되는 게 당연했다.
그래서 처음에 2차원 배열 입력 받을 때, 공백 구분 없이 입력 받아야 한다!

최종 답안

li = []
for i in range(5) :
    li.append(list(input()))

for j in range(15) :
    for i in range(5) :
        if j < len(li[i]):
            print(li[i][j], end='')


(오른쪽 부분이 잘렸지만) 이런 식으로 배열에 담겨야 정상임


이제 제대로 출력 된다.

profile
웹 백엔드와 클라우드 정복을 위해 탄탄한 기반을 쌓아가고 있는 예비개발자입니다. 'IT You Up'은 'Eat You Up'이라는 표현에서 비롯되어, IT 지식을 끝까지 먹어치운다는 담고 있습니다.

0개의 댓글