-
1817코테 대비 python/백준 2023. 1. 25. 16:57
https://www.acmicpc.net/problem/1817
1817번: 짐 챙기는 숌
첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책
www.acmicpc.net
# 제한 조건 책이 탑처럼 쌓여 있다. => 스택 자료구조 의심 # 예제를 통해서 살펴본결과 큐인데?? from collections import deque N, M = map(int, input().split(' ')) if N==0 : pass else: book_list = list(map(int, input().split(' '))) queue = deque(book_list) # 경우의수 나누기 # 1. N이 0일경우 print(0) # 2. 책의 무게가 상자를 넘길경우?! 빼기로 접근?? cnt=0 tmp = M if N== 0: pass else: for _ in range(N): a= queue.popleft() #print(a) #리셋 or 처음 if M==tmp: cnt+=1 M=M-a #print(M) elif M - a >0: M=M-a #print(M) elif M-a <0 : cnt+=1 M = tmp M = tmp -a #print(M) elif M==0: cnt+=1 M=tmp M=tmp-a #print(M) else: #cnt+=1 M=tmp #M=tmp-a #print(M) print(cnt)
시간 뺐기기 딱좋은듯 처음에 코드 구상에 경우의수 확실히 나누어야 할듯
예제에서 걸려서 찾았지 아니었으면 못풀었을듯
일단 큐를 쓴다는 발상
from collections import deque
'코테 대비 python > 백준' 카테고리의 다른 글
2167 구현, 누적합, DP (0) 2023.01.26 13422 (0) 2023.01.26 14916 (0) 2023.01.24 14620 (0) 2023.01.24 1789 (1) 2023.01.23