[비효율적 코드]
# 세로읽기
words = []
max_column = 0 # 가장 긴 행의 열 개수, 즉 "최대 열 길이"를 저장하는 변수
for _ in range(5):
tmp = list(input())
words.append(tmp)
if len(tmp) > max_column:
max_column = len(tmp)
# 파이썬에서는 리스트가 비어있으면 False, 비어있지않으면 True
for i in range(max_column): # 열
for j in range(5): # 행
# 열(i)보다 현재 행(j)의 길이가 작을만 출력
if i < len(words[j]):
print(words[j][i], end='')
가장 애먹었던 부분은 i < len(words[j]) 부분이다.
훨씬 더 간단한 코드로 바꿀 수 있다.
words = [input() for _ in range(5)]
for i in range(15): # 한 줄에 최대 15개
for j in range(5): # 총 5개의 행
if i < len(words[j]):
print(words[j][i], end='')
2차원 배열에서 len(arr)은 행 개수, len(arr[i])는 열 개수 반환
arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(len(arr)) # 출력: 3 (행의 개수)
print(len(arr[0])) # 출력: 3 (열의 개수, 첫 번째 행의 길이)
'백준 - 파이썬 > 단계별 - 7 (2차원 배열)' 카테고리의 다른 글
[백준/파이썬] 2563번 색종이 (0) | 2025.05.10 |
---|---|
[백준/파이썬] 2566번 최댓값 (0) | 2025.05.09 |
[백준/파이썬] 2738번 행렬 덧셈 (0) | 2025.05.09 |