문제풀이/BOJ

[Python] BOJ/백준 1817번 짐 챙기는 숌

서채리 2022. 9. 4. 19:24

[문제]

 

https://www.acmicpc.net/problem/1817

 

1817번: 짐 챙기는 숌

첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책

www.acmicpc.net

 

[풀이]

이 문제의 핵심은 책을 차례대로 박스에 넣을 수 있다는 것이다.

때문에 차례대로 반복문을 돌며 박스에 책을 넣었을 때 박스에 들어간 무게가 M을 넘는다면 박스 무게를 초기화 하여 현재 책의 무게를 담고 cnt를 1 증가시킨다.

 

 

[코드]

import sys

N, M = map(int, sys.stdin.readline().split())
if N > 0:
    books = list(map(int, sys.stdin.readline().split()))
    current_weight, cnt = 0, 1
    for book in books:
        if current_weight + book <= M:
            current_weight += book
        else:
            current_weight = book
            cnt += 1
    print(cnt)
else:
    print(0)