https://school.programmers.co.kr/learn/courses/30/lessons/42885
코딩테스트 연습 - 구명보트
알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려
school.programmers.co.kr
✓ 문제
모든 사람(people)을 구출하기 위해 필요한 최소 구명보트의 개수
단, 구명보트에는 최대 2명씩 무게 제한(limit)만큼만 탑승 가능
✓ 풀이과정
1. people 배열을 오름차순으로 정렬하고 배열의 왼쪽(가장 가벼운 사람)을 left, 오른쪽(가장 무거운 사람)을 right로 선언
2. 가장 가벼운 사람과 가장 무거운 사람의 합이 limit을 넘는다면 가장 무거운 사람만 보트를 태우고 아니라면 두 명을 함께 보트를 태워보내며 보트를 사용할 때마다 카운트(boats)
3. 모든 사람을 태워보낼 때까지 반복하며 사용한 보트의 수를 반환

✓ 최종코드
function solution(people, limit) {
let left = 0;
let right = people.length - 1;
let boats = 0;
people.sort((a, b) => a - b);
for (right; left <= right; right--) {
if (people[left] + people[right] <= limit) left++;
boats++;
}
return boats;
}'프로그래머스 > Lv2' 카테고리의 다른 글
| [프로그래머스/Javascript] Lv.2 기능개발 (0) | 2026.02.09 |
|---|---|
| [프로그래머스/Javascript] Lv.2 H-Index (0) | 2026.02.06 |
| [프로그래머스/Javascript] Lv.2 카펫 (0) | 2026.02.03 |
| [프로그래머스/Javascript] Lv.2 N개의 최소공배수 (0) | 2026.02.02 |