[Java] level2 - greedy_42885 : 소수 찾기

oneofakindscene·2021년 8월 30일
0

programmers_java

목록 보기
10/10

문제

풀이

  • 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;
profile
oneofakindscene

0개의 댓글