문제
https://school.programmers.co.kr/learn/courses/30/lessons/42885
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
< 구명보트 >
문제 풀이 (Java)
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
int answer = 0;
Arrays.sort(people);
int start = 0, end = people.length - 1;
while (start < end) {
if (people[start] + people[end] <= limit) {
answer += 1;
start += 1;
end -= 1;
} else {
end -= 1;
answer += 1;
}
}
if (start == end) {
answer += 1;
}
return answer;
}
}
먼저 사람들의 몸무게를 오름차순으로 정렬한다. 앞과 뒤를 같이 살펴보며 무게의 합이 무게 제한 이하인지 확인한다. 무게 제한 이하라면 2명을 태우고, 무게 제한보다 크다면 무거운 사람 한 명만 태운다.
최종 answer을 반환한다.

출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'🌞Algorithm > 🔥programmers' 카테고리의 다른 글
| [programmers] 체육복 (0) | 2026.08.19 |
|---|---|
| [programmers] 모의고사 (0) | 2026.08.18 |
| [programmers] 더 맵게 (0) | 2026.08.14 |
| [programmers] 주식가격 (0) | 2026.08.13 |
| [programmers] 올바른 괄호 (0) | 2026.08.12 |