본문 바로가기
알고리즘/프로그래머스

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

by hxxyeoniii 2024. 10. 14.

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42885

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 풀이

투 포인터 & 그리디를 활용해 풀이
 
1. people 배열을 오름차순으로 정렬
2. 가장 가벼운 사람과 가장 무거운 사람을 기준으로 투포인터 진행

import java.util.*;

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