728x90
> 파이썬, 구현, 그리디 알고리즘
📖 문제 : 짐 챙기는 숌 (Python)
숌은 짐을 챙겨서 겨울캠프에서 집으로 가려고 한다. 근데 숌은 공부를 많이 하러 캠프에 온 것이기 때문에 책을 엄청나게 많이 가지고 왔다. 숌은 이 책을 방에 탑처럼 쌓아 놨다.
숌은 책을 박스에 차곡차곡 넣어서 택배로 미리 보내려고 한다. 책은 탑처럼 차곡차곡 쌓여있기 때문에, 차례대로 박스에 넣을 수밖에 없다.
각각의 책은 무게가 있다. 그리고 박스는 최대 넣을수 있는 무게가 있다. 숌이 필요한 박스의 개수의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책의 무게가 공백을 사이에 두고 주어진다. 책의 무게는 M보다 작거나 같은 자연수이다.
출력
첫째 줄에 필요한 박스의 개수의 최솟값을 출력한다.
예제 입력 1
6 10
5 5 5 5 5 5
예제 출력 1
3
예제 입력 4
11 12
12 1 11 2 10 3 4 5 6 6 1
예제 출력 4
6
내 코드
from collections import deque
if __name__ == "__main__":
N, M = map(int, input().split())
cnt = 0
if N == 0:
cnt = 0
else:
book = list(map(int, input().split()))
stack = []
for b in book:
stack.append(b)
if sum(stack) < M:
continue
elif sum(stack) == M:
stack.clear()
cnt += 1
else:
stack.clear()
stack.append(b)
cnt += 1
if sum(stack) > 0:
cnt += 1
print(cnt)
Point ! ⭐️
- '책은 탑처럼 차곡차곡 쌓여있기 때문에, 차례대로 박스에 넣을 수밖에 없다.' 라고 했기 때문에 '순서대로' 넣으면 된다 !
넣다가 박스의 무게보다 넣으려는 책을 넣었을 때의 무게가 더 크면 다른 새로운 박스로 넣으면 된다 !
정말 쉬운 문제였는데, 제대로 안읽어서 그냥 박스의 최솟값 구하는 문젠줄 알았자나 ..
문제를 잘 읽어야 한당 !!
백준
https://www.acmicpc.net/problem/1817
728x90
'Algorithm (Python, Java, SQL) > BaekJoon' 카테고리의 다른 글
[백준 11866번] 요세푸스 문제 0 (Python) (" ".join(map(str, result))으로 리스트의 원소(정수값)를 한 줄로 출력하기) (0) | 2023.07.03 |
---|---|
[백준 1966번] 프린터 큐 (Python) (list(enumerate(l1, start=0)) 리스트 L1값들과 인덱스값을 튜플로 만들어 저장하기) (0) | 2023.07.03 |
[백준 16206번] 롤케이크 (Python) (0) | 2023.06.29 |
[백준 20300번] 서강근육맨 (Python) (0) | 2023.06.29 |
[백준 4963번] 섬의 개수 (Python) (재귀 문제를 푼다면 ! 항상 필수로sys.setrecursionlimit(100000)으로 재귀 제한을 없애주기) (0) | 2023.06.27 |