XX 회사는 트럭을 이용해 상품을 운반합니다. 트럭은 최대 무게가 한정되어있습니다. 직원은 트럭에 상품을 순서대로 실으며, 상품을 실을 수 없는 트럭은 바로 목적지로 출발합니다. 이때 우리는 모든 상품을 운반하는데 필요한 트럭은 최소 몇 대인지 구하려 합니다.
예를 들어, 각 상품의 스펙이 다음과 같고, 트럭의 허용 무게가 300, 실어야 할 상품이 ["toy", "snack", "snack"]라고 합니다.
이 경우 첫째 상품과 둘째 상품은 같은 트럭에 들어가지만, 셋째 상품은 다른 트럭에 넣어야 합니다. 따라서 필요한 트럭 수는 두 대 입니다.
트럭의 허용 무게 max_weight와 상품의 스펙을 담은 배열 specs, 운반할 상품의 이름이 순서대로 들은 배열 names가 주어집니다. 이때, 상품을 순서대로 운반하기 위해 필요한 트럭 수를 리턴하는 함수, soution을 완성하세요.
그림을 그려 주어진 예제를 하나씩 풀어간다면 쉽게 해결할 수 있는 문제이다.
여기서 몇가지 생각해 볼것은 반환값이 될 answer의 시작값 그리고 내용물이
담기지 못할만큼의 크기라 새로운 트럭을 이용해도 실어야 되는 물건의
무게를 꼭 빼야한다는 것 정도일 것이다.
주어진 문제 그대로를 구현하면 되는 문제였으므로 별도의 설명은 없다.😄
=============================================================
def solution(max_weight, specs, names):
answer = 1
specs = dict(specs)
m = max_weight
for i in names:
if m >= int(specs[i]):
m -= int(specs[i])
else:
answer += 1
m = max_weight
m -= int(specs[i])
return answer