programmers_구명보트_java
2023. 4. 3. 11:23ㆍAlgorithm/Programmers
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42885
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
int peopleNum = people.length;
int[] weightSum = new int[peopleNum];
Arrays.sort(people);
int escapePeople = 0; // 탈출한 사람
int left = 0; // 가벼운 사람
int right = peopleNum -1; // 무거운 사람
while(left < right){
if(people[right] <= limit/2) break; // 가장 무거운 사람이 limit/2 보다 작거나 같으면 나머지는 모두 2명씩 탈출 가능
if(people[left] + people[right] <= limit){ // 가장 가벼운 + 가장 무거운 // 2사람 탐승 가능한 경우
left++;
right--;
escapePeople += 2;
}else{
right--;
escapePeople+= 1;
}
answer++;
}
answer += Math.ceil((peopleNum - escapePeople) / 2.0); // 남은 사람은 모두 2명씩 탈출 가능
return answer;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
programmers_다음 큰 숫자_java (0) | 2023.04.03 |
---|---|
programmers_피보나치 수_java (0) | 2023.04.03 |
programmers_이진 변환 반복하기_java (0) | 2023.04.01 |
programmers_이진 변환 반복하기_java (0) | 2023.04.01 |
programmers_디펜스 게임_java (0) | 2023.04.01 |