Problem : 택배
유형 : 그리디
문제해석
- 박스를 최대한 많이 옮길때, 총 박스의 수를 구하라.
- 어디에서 무슨 택배를 싣고, 내릴지 모든 미래를 이미 알고 있다.
해결전략
- 가장 많은 박스를 옮기는 방법을 구하는 방법은
시작지 -> 도착지
의 이동거리가 가장 짧은것부터 처리하면 된다. - 도착지가 가장 가까운 순으로 정렬한뒤 처리한다.
1 |
|
구현
truckWeight[도시위치]
를 통해서 해당 도시에 위치할때, 트럭이 얼마나 많은 박스를 싣고 있는지 저장한다.3 to 6
이라는 입력이 있을때,도시3 - 도시5
까지 (6은 도착지이니 생략한다) 가장 많이 박스가 실려있는 경우를 찾는다.- 트럭의 남은 용량(트럭의 최대 용량 - 가장 많이 박스가 실려있는경우), 싣어야 하는 최대 박스중 작은값을 찾아 박스를 싣는다.
코드
Cpp
1 |
|
Java
1 |
|
- cpp로 푼경우와 java로 푼경우의 시간간격이 3개월이상 나서, 로직은 동일하지만 약간의 변수명 차이가 존재한다.