# 공 넣기
N, M = map(int, input().split())
# 바구니에 공을 넣기 전에 크기 N만큼 0으로 초기화해야한다
basket = [0] * N
for _ in range(M):
i, j, k = map(int, input().split())
for x in range(i, j+1):
basket[x-1] = k
print(*basket)
🧨 문제점 1: basket 초기화가 안 되어 있음
basket = []
이건 빈 리스트라서, basket[i-1] = k처럼 인덱스로 접근하면 IndexError가 납니다.
→ 바구니에 공을 넣기 전에 크기 N만큼 0으로 초기화해야 해요.
🧨 문제점 2: for i in range(j+1): 부분이 잘못됐음
여기서 i는 이미 공을 넣을 구간의 시작 인덱스인데, for i in range(j+1)로 덮어쓰면서 오동작합니다.
→ 그리고 이 반복문은 i부터 j까지 넣는 거니까 **range(i, j+1)**이 되어야 해요.
-1을 하는 이유는 문제에서 바구니 번호가 1번부터 시작하지만, 파이썬 리스트는 0번부터 시작하기 때문이에요.
💡 출력에서 *basket을 쓰는 이유:
- print(*basket) → 리스트 요소를 공백으로 구분해서 출력해줘서 백준 출력 형식에 맞아요.
'백준 - 파이썬 > 단계별 풀어보기 - 4 (1차원 배열)' 카테고리의 다른 글
[백준/파이썬] 10811번 바구니 뒤집기 | slicing(슬라이싱)문법, reverse(), (0) | 2025.05.02 |
---|---|
[백준/파이썬] 3052번 나머지 | set(), len(), append() (0) | 2025.05.02 |
[백준/파이썬] 5597번 과제 안 내신 분..? | remove()함수, list comprehension (0) | 2025.05.01 |
[백준/파이썬] 2562번 최댓값 | append()함수, index()함수 (0) | 2025.04.30 |
[백준/파이썬] 10807번 개수 세기 | count()함수, list (0) | 2025.04.30 |