그리디 구명보트

Inhyeeee·2021년 1월 13일
0

코딩 삽질 기록

목록 보기
18/20
import java.util.Arrays;

class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        
        Arrays.sort(people);
        
        int idx = 0;
        for(int i = people.length-1; i >= idx ; i--){
            if(people[i] + people[idx] > limit){
                answer++;
            }
            else {
                idx++;
                answer++;
            }
        }
        
        return answer;
    }
}

idx(제일 작은 수)를 하나 지정하고 i를 idx까지만 줄인다.
두 수의 합이 limit보다 작거나 같으면 idx++해서 둘 사이의 간격을 줄여준다.
이 문제는 되게 쉬운건데도 못풀었다...
그래도 비슷한 방향으로 풀었음에 위안을 얻기로 했다.

어떻게 연습을 해야하는 것일까?

profile
avocadoxxi

0개의 댓글