처음 문제를 봤을 때 하나의 리스트를 만드는 것이 아니라 여러개의 리스트를 만들어서 각 리스트변수 안에 원소가 어떤 것들이 들어가있는지 전부 파악해야되는 문제인줄 알고 한참을 해맷다...
주머니에 공을 넣을 때 같은번호의 공이면 헌 것을 빼고 새 것을 넣는다는 의미인줄 알았는데 다른번호여도 기존의 공을 빼고 새로운 공을 다시 집어넣는 작업이었던 것이다.
한마디로 하나의 리스트로 새로 입력받기만 하면 되는 문제..!
(점점 가면갈수록 문제이해하는 것이 힘들어진다...)
n,m = map(int, input().split())
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
for x in range(n):
print(basket[x],end = " ")
주머니의 개수n개 만큼 basket변수에 0으로 만들어준다.
(아무것도 안들어있는 주머니의 경우 0으로 표기해야하기 때문)
for문을 이용하여 m번 만큼 입력을 받도록 써주고,
i,j,k변수에 각각 수를 입력받도록 식을 써준다.
또 그안에서 i~j번의 주머니안에 k번호의 공을 넣어주어야 함으로,
range(i,j+1) +1이 붙는 이유는 range로 범위지정을 해줄때는 뒷숫자의 앞번까지 반복하기 때문.
그리고 리스트는 0부터 시작이므로 basket[x-1]을 해줌으로써 원하는 번호의 주머니에 k의 공을 넣을 수 있게된다.
마지막으로 0~4번의 주머니안의 원소(공번호)를 표기하기 위해서,
또 한줄씩 출력하는 것이 아니라 한줄안에 띄어쓰기를 하여 한번에 표현해야 하므로 end= " "를 이용한다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준 문제풀이 : 3052번] 파이썬 - 나머지 (0) | 2023.08.07 |
---|---|
[백준 문제풀이 : 5597번] 파이썬 - 과제 안 내신 분..? (0) | 2023.08.07 |
[백준 문제풀이 : 2562번] 파이썬 - 최대값 (0) | 2023.08.04 |
[백준 문제풀이 : 10807번] 파이썬 - 개수 세기 (0) | 2023.08.03 |
[백준 문제풀이 : 10951번] 파이썬 - A + B - 4 (0) | 2023.08.02 |