import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
if(people.length == 1)
return 1;
Arrays.sort(people);
List<Integer> list = new ArrayList<>();
for(int i = 0; i<people.length;++i)
list.add(people[i]);
int len = 0;
int big = 0;
while(list.size() > 0) {
len = list.size();
big = list.get(len-1);
if(list.size() >1 && big+list.get(0) <= limit) {
list.remove(list.size()-1);
list.remove(0);
}
else {
list.remove(list.size()-1);
}
answer++;
}
return answer;
}
}
인원을 무게 순으로 정렬한다.
가장 무게가 나가는 사람이 가장 가벼운 사람을 태우지 못하면 배 하나 들고 나간다.
태울 수 있으면 태운다. 끝이다.
지금 생각해보니 저걸 list로 하지말고 deque를 쓰는게 좋았을텐데..
deque나 set이나 회사에서 잘 안쓰는 자료구조는 까먹을 때가 많아서 문제다.
'문제풀이' 카테고리의 다른 글
프로그래머스(체육복) (0) | 2021.06.07 |
---|---|
프로그래머스(큰 수 만들기) (0) | 2021.06.07 |
프로그래머스(단속카메라) (0) | 2021.06.07 |
카카오 2019 신입 공채 1차 2번 문제 (0) | 2018.09.28 |
카카오 2019 신입 공채 1차 1번 문제 (1) | 2018.09.28 |