아기깨비
아기깨비의 코딩방망이
아기깨비
전체 방문자
오늘
어제
  • 전체보기 (170)
    • Today I Learned (TIL) (0)
      • CS (0)
      • Python (0)
    • Algorithm (170)
      • BAEKJOON (168)
      • Programmers (1)
      • SW Expert Academy (1)
    • Experience (0)
      • 삼성 청년 SW 아카데미 (2022) (0)
      • 혁신성장 청년인재 집중양성 (2019) (0)

인기 글

최근 글

hELLO · Designed By 정상우.
아기깨비

아기깨비의 코딩방망이

[백준 / Python 파이썬] 1817번 - 짐 챙기는 숌
Algorithm/BAEKJOON

[백준 / Python 파이썬] 1817번 - 짐 챙기는 숌

2023. 4. 12. 13:15

[Silver V] 짐 챙기는 숌 - 1817


문제 링크

분류

구현, 그리디 알고리즘

문제 설명

숌은 짐을 챙겨서 겨울캠프에서 집으로 가려고 한다. 근데 숌은 공부를 많이 하러 캠프에 온 것이기 때문에 책을 엄청나게 많이 가지고 왔다. 숌은 이 책을 방에 탑처럼 쌓아 놨다.

숌은 책을 박스에 차곡차곡 넣어서 택배로 미리 보내려고 한다. 책은 탑처럼 차곡차곡 쌓여있기 때문에, 차례대로 박스에 넣을 수밖에 없다.

각각의 책은 무게가 있다. 그리고 박스는 최대 넣을수 있는 무게가 있다. 숌이 필요한 박스의 개수의 최솟값을 구하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 필요한 박스의 개수의 최솟값을 출력한다.


N, M = map(int, input().split())
if N == 0:
    print(0)
else:
    books = list(map(int, input().split()))

    boxs = 1
    temp = 0
    for book in books:
        temp += book
        if temp > M:
            boxs += 1
            temp = book

    print(boxs)

'Algorithm > BAEKJOON' 카테고리의 다른 글

[백준 / Python 파이썬] 24447번 - 너비 우선 탐색 4  (0) 2023.04.12
[백준 / Python 파이썬] 24446번 - 너비 우선 탐색 3  (0) 2023.04.12
[백준 / Python 파이썬] 16937번 - 두 스티커  (0) 2023.04.12
[백준 / Python 파이썬] 16922번 - 로마 숫자 만들기  (0) 2023.04.11
[백준 / Python 파이썬] 16208번 - 귀찮음  (0) 2023.04.11
    'Algorithm/BAEKJOON' 카테고리의 다른 글
    • [백준 / Python 파이썬] 24447번 - 너비 우선 탐색 4
    • [백준 / Python 파이썬] 24446번 - 너비 우선 탐색 3
    • [백준 / Python 파이썬] 16937번 - 두 스티커
    • [백준 / Python 파이썬] 16922번 - 로마 숫자 만들기
    아기깨비
    아기깨비
    아기깨비가 공부하는 일상을 기록하는 블로그 입니다.

    티스토리툴바