알고리즘 문제 풀이를 블로그에 올리는 이유는 풀이, 코드를 기록하기 위함이니
앞으로 문제를 다 긁어오기보다 링크만 두고 풀이가 잘 보이도록 포스팅 할 예정입니다!
이 문제는 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 받아
모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하는 문제이다.
조건 1) 구명보트는 무게 제한이 있다.
조건 2) 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없다.
import java.util.Arrays;
public class Solution {
public static void main(String[] args) {
int[] people = {100,500,500,900,950}; //500,500/100,900/950
int limit = 1000;
System.out.println(solution(people,limit));
}
public static int solution(int[] people, int limit) {
Arrays.sort(people);
int answer = 0;
int p1 = 0;
for(int p2 = people.length-1; p2 >= p1; p2--) {
if(people[p1] + people[p2] > limit) {
}else {
p1++;
}
answer++;
}
return answer;
}
}