백준 10810번: 공넣기

2023. 8. 20. 02:25개인활동/코테

i = input
baskets, m = map(int, i().split())
basket_list = list(0 for _ in range(baskets))
method = [[*map(int, input().split())] for _ in range(m)]

for i in method:
    for j in range(i[0]-1, i[1]):
        basket_list[j] = i[2]
        basket_list[j] = i[2]


print(*basket_list)

여기서도 unpacking을 사용하면 좀 쉽게 문제를 풀 수 있다.

 

저 중첩 반복문을 좀 간단하게 표현하고 싶은데, 어떻게 하면 좋을지 좀 고민을 해봤다.

 

근데 도저히 떠오르지 않아 바로 숏코드 분석을 하기로 결정했다. 

 

숏코드 1등이 파이썬이라니 처음본다(여태 몇문제 안풀었음ㅋ)

 

p,_,*l=map(int,open(0).read().split())
L=[0]*p
while l:p,q,r,*l=l;L[p-1:q]=[r]*(q-p+1)
print(*L)

 

와. 미쳤다. 어떻게 이런 생각을 하는걸까?

 

일단 m값은 그냥 무시하고 시작했고, 바구니 리스트 만들어주고

 

궁금한점

1. while l:을 하면 무슨 의미인거지?

 

l 안에 있는 데이터들이 모두 사라질 때까지 돌리는 반복문이 된다고 한다.

이런 방법도 있다니...

 

파이썬 헛배운 것 같다.

 

그리고 이 l 안의 데이터를 한줄 꺼내 p, q, r에 대입 후 남은 것은 l에 다시 넣어주는것

 

그리고 뒤의 과정은 공넣는 과정

 

또 배워갑니다.

 

잘 써먹어야 하는데..

 

 

 

 

 

'개인활동 > 코테' 카테고리의 다른 글

백준 5597번: 과제 안 내신 분..?  (0) 2023.08.23
백준 10813번: 공바꾸기  (0) 2023.08.20
백준 2562번: 최댓값  (0) 2023.08.19
백준 10818번: 최소, 최대  (0) 2023.08.18
백준 10871번: X보다 작은 수  (0) 2023.08.17