구명보트

문제


문제 풀이

해당 문제를 투포인터 알고리즘을 활용하여 처리하였다. 

people 배열을 정렬을 한 뒤, 제일 큰 값과 작은 값을 더했을 때, limit 보다 작은 경우 left, right 둘다 이동. 

초과를 하면 right만 이동시키는 방식으로 처리 하였다. 


나의 답안

public static int solution(int[] people, int limit) {
    Arrays.sort(people);
    int answer = 0;
    int left = 0;
    int right = people.length - 1;

    while (left <= right) {
        if (people[left] + people[right] <= limit) left++;
        right--;
        answer++;
    }
    return answer;
}

'Programmers 문제풀이 > Lv.2' 카테고리의 다른 글

점프와 순간이동  (0) 2023.03.31
예상 대진표  (0) 2023.03.31
가장 큰 수  (0) 2023.03.30
카펫  (0) 2023.03.30
영어 끝말잇기  (0) 2023.03.30