문제풀이
프로그래머스(구명보트)
AngQu
2021. 6. 7. 22:36
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이나 회사에서 잘 안쓰는 자료구조는 까먹을 때가 많아서 문제다.