자바/코딩테스트
[프로그래머스] 구명보트 - Java(자바)
대전집주인
2024. 3. 25. 15:55
728x90
SMALL
문제 이해
- 구명보트는 한번에 최대 2명씩 밖에 못탄다.
- limit 무게보다 낮으면 2명 높으면 1명씩 타야한다.
- 무게가 낮은 순서대로 오름차순하기
- 무게가 낮은 사람을 left 변수, 높은 사람을 right 변수 선언
- 무게가 제일 낮은 사람과 제일 높은 사람의 합이 limit보다 낮거나 같으면 탈출하였기에 left++, right--
- 두 무게의 합이 더 높다면 right-- 로 더 낮은 사람과 매칭을 시켜서 무인도에서 한명씩 나오게 한다.
import java.util.*;
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){
right -= 1;
}else if(people[left] + people[right] <= limit) {
left += 1;
right -= 1;
}
answer++;
}
return answer;
}
}
728x90
LIST