📝문제
출처 :https://www.acmicpc.net/problem/10810
고
민
하
기
📝답
n, m = map(int, input().split())
baskets = [0] * n
for idx in range(0, m):
i,j,k = map(int, input().split())
for pos in range(i, j+1):
baskets[pos-1] = k
for i in range(len(baskets)):
print(baskets[i],end = ' ')
- n으로 바구니의 개수를 지정해준다 이때 0을 넣어 바구니를 항상 초기화 시켜준다
- m은 공을 넣을 개수이다 즉 i,j,k 가 몇번 써야하는지 결정해주는 수
- idx 는 m을 반복하는 반복문이다 i,,j,k 가 계속 반복할 수 있게 해준다
- pos를 사용해서 baskets 인덱스를 이용하여 k를 넣어준다
- 여기서 가장 중요
- 리스트의 시작은 0이다 그러나 우리는 평소에 바구니를 1부터 센다
- 그러니까 1을 빼줘서 리스트의 시작을 맞춰준다
🤔못 풀었던 이유
1. 가장 큰 이유는 출력문을 이해하지 못 했다. 사실 문제를 똑바로 읽지 않았던거 같다
- 입력이 긴데 출력이 왜 한줄이지? (그 생각을 하면서 계속 시간을 보냈다 계속 시간을 이걸 이해하면서 보낸거 같다...)
- 입력에 M을 이해하지 못한게 가장 크다
- i,j,k 가 4번 반복되는데 왜 출력은 한개지? 라는 생각을 항상 품고 있었다
(그렇게 계속 생각만 하다가 2일 동안 이해를 못하고 있으니 구글링하면서 힌트를 알아봤다 )
2. baskets = [0] * n 이런 구문이 존재하는지도 몰랐다 (힌트를 본 후에)
- baskets = [] * n 은 또 작동하지 않는다…
느낀점
이 문제를 풀고 나서 10813번을 풀어봤는데 확실히 잘 풀린다 역시 문제를 꼼꼼히 읽는 습관이 가장 중요한 거 같다 그리고 내가 현재 유데미에서 파이썬 강의를 듣고 있긴 하지만 아직 안배운 개념들이 코테를 풀다보면 직면하는 경우가 많아서 아쉬웠다 몇일 고민했는데 안배운 개념이라니... 그치만 좌절보단 계속 배워가면서 실수 안하게 노력해야겠다!
(앞으로 코테, 알고리즘 문제는 풀기 아주 어려웠거나 중요한 개념이 있는 것만 올리려고 한다)
//모르는 부분이 있다면 댓글로 질문 주세요!