Algorithm/Programmers

[Lv.2] 구명보트 : Java

say! 2026. 2. 3. 17:33
728x90
 

코딩테스트 연습 - 구명보트

알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려

school.programmers.co.kr

 

포인트 : 몸무게 적은 사람 + 큰 사람 짝지어서 태우기

>투 포인터 사용하기

 

#예시

 

  • 무거운 사람부터 태우기

-정답코드

import java.util.*;

class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        
        // 정렬
        Arrays.sort(people);
        
        // 투포인터 이용
        int left = 0;
        int right = people.length - 1;
        
        // 무거운 사람부터 태우기
        while(left <= right){
            if(limit - people[right] >= people[left]){
                // 더 태울 수 있는 경우
                left++;
            }
            // 무거운 사람만 탈 수 있는 경우
            right--;
            answer++;
        }
        return answer;
    }
}