[Programmers] 구명보트 (Java)
by 뚜부니
이 문제는 무인도에 갇힌 사람들을 구출하기 위해서 제한된 크기의 구명보트가 몇 개 필요한지 구하는 문제입니다.
그리고 하나의 구명보트에는 최대 2명의 사람이 탈 수 있습니다.
이 문제는 다음과 같은 방식으로 풀면 됩니다.
- 몸무게가 무거운 사람과 가벼운 사람의 합이 구명보트 크기를 넘는지 확인한다.
- 합이 구명보트 무게보다 큰 경우 무거운 사람만 태워보낸다.
- 합이 구명보트 무게보다 작거나 같은 경우 무거운 사람과 가벼운 사람을 함께 태워보낸다.
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
int start = 0, end = people.length - 1;
Arrays.sort(people);
while (start <= end) {
if ((people[start] + people[end]) <= limit) // 합이 작은 경우, 몸무게 작은 사람 큰 사람 함께 태움
start++;
end--; // 합이 큰 경우, 몸무게가 큰 사람만 태움 => 무조건 몸무게가 큰 사람은 타는 구조
answer++; // 매 수행마다 구명보트에 타는 사람 존재
}
return answer;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 섬 연결하기 (Java) (0) | 2021.06.10 |
---|---|
[Programmers] 파일명 정렬 (Java) (0) | 2021.05.05 |
[Programmers] 메뉴 리뉴얼 (Python) (0) | 2021.04.17 |
[Programmers] 동물 수 구하기 (COUNT) (0) | 2021.04.17 |
[Programmers] 최솟값 구하기 (MIN) (0) | 2021.04.17 |
블로그의 정보
개발하는 두부
뚜부니