본문 바로가기

Programmers

[프로그래머스][JAVA]Lv. 2 - 구명보트

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

 

프로그래머스

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

programmers.co.kr

최솟값인 맨 앞인 0을 left, 최댓값인 맨 끝을 right로 하였다.

그 뒤, people 배열을 정렬을 해준다.

이후, left + right 값이 limit보다 작거나 같다면 left를 증가, 크다면 right를 증감시켜 주면서 while문이 종료되면 answer를 return 하여 답을 구하였다.

import java.util.Arrays;
class Solution {
    public int solution(int[] people, int limit) {
        int answer = 0;
        int left = 0;
        int right = people.length-1;
        Arrays.sort(people);
        while (left <= right) {
            if (people[left] + people[right] <= limit) {
                left++;
            }
            right--;
            answer++;
        }

        return answer;
    }
}