[프로그래머스] Level2 구명보트 (Java)

MINSANG YU·2022년 9월 14일
0

프로그래머스

목록 보기
8/15
post-thumbnail

문제링크

핵심

2명을 가장 효율적으로 태우는 방법은 남은 사람 중 가장 무거운 사람과 가장 가벼운 사람을 태우는 것을 파악하는 것이 중요했다.

코드

import java.util.*;

class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        Arrays.sort(people);
        int start = 0, end = people.length-1;
        
        while(start<=end) {
            if(people[end]+people[start]<=limit) {
                start++;
                end--;
                answer++;
            }
            else {
                end--;
                answer++;
            }
        }
        
        return answer;
    }
}

먼저 오름차순으로 정렬한 뒤, 가장 무거운 사람과 가장 가벼운 사람의 무게 합이 limit를 넘는지 확인한 뒤, limit를 넘지 않는다면 start, end 값을 한 칸씩 옮겨주고, limit를 넘는다면 현재 가장 무거운 사람은 누구와도 함께 탈 수 없기 때문에 end값만 한 칸을 옮겨준다.

profile
쉿! 공부중

0개의 댓글