티스토리 뷰

728x90

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

 

1817번: 짐 챙기는 숌

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

www.acmicpc.net


  • 해설 : 

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

 

각각의 책은 무게가 있다. 그리고 박스는 최대 넣을수 있는 무게가 있다.

이 때, 필요한 박스의 최소개수를 구하면 된다.

 

 

 


  • 풀이 :

박스에 담을 수 있는 무게보다 작은동안 쌓여있는 책을 하나씩 넣는다 

순서가 있으므로 정렬은 할 수 없다.

 

 

 


  • 소스코드 : 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import sys
input = sys.stdin.readline
 
if __name__ == "__main__":
    N,M = map(int,input().split())
    weight = list(map(int,input().split()))
    curr = 0
    ans = 1
    if N == 0:
        print(0)
        exit()
    for i in weight:
        if i + curr > M:
            curr = i
            ans += 1
        else:
            curr += i
    print(ans)
 
cs
320x100
댓글
© 2022 WonSeok, All rights reserved