[프로그래머스] LEVEL2 구명보트 JAVA

Pixel Dophin·2023년 7월 5일
0

프로그래머스

목록 보기
14/55

구명보트

문제링크

풀이

탐욕, 그리디 문제
사람을 무게순으로 정렬
그리고 무거운 사람을 기준으로 무거운 사람과 가벼운 사람이 같이 탈 수 있는 지 확인
같이 탈 수 없다면 무거운 사람 한명만 구명보트에 태우고 같이 탈 수 있다면 가벼운 사람도 같이 태운다.

코드

/*
1 <= people.length <= 50_000

40 <= people[?] <= 240

40 <= limit <= 240

항상 모든 사람을 구출 할 수 있음

*/
import java.util.*;
class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        
        // 사람을 무게순으로 정렬
        Arrays.sort(people);
        
        int min = 0;
        for (int i = people.length -1; i >= 0; i--) {
            if (people[i]+ people[min] <= limit) {
                min++;  
            }
            answer++;
            
            if (i <= min){
                break;
            }
        }
        
        
        return answer;
    }
}
profile
안녕 👋 성장하고픈 개발자 💻 입니다

0개의 댓글

관련 채용 정보