1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
int i = 0, li = limit;
Deque<Integer> dq = new ArrayDeque<Integer>();
Arrays.sort(people);
for (i = 0; i < people.length; i++) {
dq.add(people[i]);
}
while (!dq.isEmpty()) {
answer++;
// 무게가 많이 나가는 사람부터 태움
li -= dq.pollLast();
// 무게가 가벼운 사람이 탈 수 있는 경우
if (!dq.isEmpty() && dq.peek() <= li)
dq.poll();
li = limit;
}
return answer;
}
}
|
cs |
최대 2명이 탈 수 있는 구명보트에서 무거운 사람부터 태웠다.
이를 앞 뒤에서 손쉽게 뺄 수 있는 Deque로 구현하였다.
'Programmers > Level2' 카테고리의 다른 글
[1차] 프렌즈4블록 (0) | 2021.07.27 |
---|---|
점프와 순간 이동 (0) | 2021.07.27 |
영어 끝말잇기 (0) | 2021.07.25 |
가장 큰 정사각형 찾기 (0) | 2021.07.24 |
[1차] 캐시 (0) | 2021.07.24 |