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
'자바 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 할인 행사 - Java(자바) (0) | 2024.03.26 |
---|---|
[프로그래머스] 괄호 회전하기 - Java(자바) (0) | 2024.03.26 |
[프로그래머스] 영어 끝말잇기 - Java(자바) (0) | 2024.03.25 |
[프로그래머스] 점프와 순간 이동 - Java(자바) (0) | 2024.03.25 |
[프로그래머스] 카펫 - Java(자바) (0) | 2024.03.25 |