코딩테스트

[프로그래머스/Javascript] 구명보트

셈인 2023. 7. 13. 21:58

📄 문제

Lv 2. 탐욕법(Greedy) 구명보트

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


🔍 문제 접근

💡 가장 효율적으로 구명보트를 운영하려면 무게 제한을 넘지 않는 선에서 가장 작은 몸무게 + 가장 큰 몸무게를 함께 태운다.

 


📝 문제 풀이

function solution(people, limit) {
    const ascendingPeople = people.sort((a, b) => a - b);
    let count = 0;

    while (ascendingPeople.length) {
        if (limit >= ascendingPeople[0] + ascendingPeople[ascendingPeople.length - 1]) {
            ascendingPeople.shift();
        }

        ascendingPeople.pop();
        count += 1;
    }

    return count;
}