문제
풀이
- people array를 sort()로 오름차순 정렬
- deque()를 활용하여 가장 가벼운 사람, 가장 무거운 사람 조합으로 보트에 태울 수 있는지 확인 => 태울 수 없다면 가장 무거운 사람만 타게끔 한다.
- 이런 방식으로 모든 사람이 탑승하려면 몇명이 탑승해야할지 구한다
public static int solution(int[] people, int limit){
Arrays.sort(people);
Deque<Integer> deque = new ArrayDeque<>();
int answer = 0;
for (int i = 0; i<people.length; i++){
deque.add(people[i]);
}
while (!deque.isEmpty()){
if (deque.getFirst() + deque.getLast() <= limit && deque.size() > 1){
deque.removeLast();
deque.removeFirst();
answer++;
} else {
deque.removeLast();
answer++;
}
}
return answer;