function solution(people, limit) {
// 몸무게를 내림차순으로 정렬하여 가장 무거운 사람부터 처리
people.sort((a, b) => b - a);
let left = 0; // 현재 보트에 태울 사람의 인덱스 (가장 무거운 사람부터 시작)
let right = people.length - 1; // 현재 보트에 태울 수 있는 가장 가벼운 사람의 인덱스
let boats = 0; // 필요한 보트의 수
// 왼쪽 포인터가 오른쪽 포인터보다 작거나 같을 때까지 반복
while (left <= right) {
// 현재 가장 무거운 사람과 가장 가벼운 사람의 몸무게 합이 제한 무게 이하면 함께 태움
if (people[left] + people[right] <= limit) {
right--; // 다음으로 가벼운 사람을 가리키기 위해 오른쪽 포인터 감소
}
left++; // 다음으로 무거운 사람을 가리키기 위해 왼쪽 포인터 증가
boats++; // 보트 하나를 사용했으므로 카운트 증가
}
return boats; // 필요한 최소 보트 수 반환
}