[프로그래머스] 구명보트
탑승 인원과 무게가 제한된 구명보트를 최소한으로 사용하여 승객을 모두 구출하는 문제이다.
제한 인원은 최대 2명이고, 제한 무게는 주어진다.
가장 적은 구명보트를 사용하려면, 구명보트 하나를 사용할 때 최대한 제한 무게에 가깝게 사람들을 묶어 탑승시켜야 한다.
무게에 제한이 있으므로, 무거운 사람들을 어떻게 태울 것인가가 문제의 핵심 포인트라고 생각했다.
가벼운 사람들을 먼저 구명보트에 태우면, 후에 무거운 사람들을 태울 때 구명보트에 낭비되는(사람을 태울 수 있는) 무게가 존재할 수 있음에서 힌트를 얻었다.
따라서 가장 무거운 사람을 먼저 태우고, 그 남는 무게에 가장 가벼운 사람이 탑승할 수 있는지 확인하는 방법으로 문제를 해결했다. 이 문제에서 제한 인원이 최대 2명이기 때문에 가장 무거운 사람과 가장 가벼운 사람만 확인하는 방법으로도 문제 해결이 가능했다.
1 |
|