문제풀이
1. sort를 이용하여 우선 오름차순 정렬을 만든 다음
2. 무거운 사람부터 제거해나가는 것이 리밋에 걸리기 쉬우니까 아래로 내려가면서 체크한다
3. 제일 무거운 사람과 제일 가벼운 사람의 합이 limit보다 적거나 같을 경우에 min을 더해주면서 다음 순차로 가도록 한다
그렇다면 min++를 통해 다음 연산에는 min + 1이 적용되어 이전 차례는 넘기고 다음 것과 연산을 한다.
public int t02(int[] people, int limit) {
int answer = 0;
Arrays.sort(people);
int min = 0;
for(int max = people.length - 1; min <= max; max--){
if(people[min] + people[max] <= limit){
min++;
}
answer++;
}
return answer;
}
'Algorithm' 카테고리의 다른 글
[010] 예상 대진표 (0) | 2024.02.19 |
---|---|
[009] N개의 최소공배수 (0) | 2024.02.19 |
[007] 점프와 순간 이동 (0) | 2024.02.16 |
[006] 영어 끝말잇기 (0) | 2024.02.16 |
[005] 영어 끝말잇기 (풀이중) (0) | 2024.02.15 |