article thumbnail image
Published 2022. 12. 1. 17:05

https://school.programmers.co.kr/learn/courses/30/lessons/42885

 

function solution(people, limit) {
    let answer = 0;
    people.sort( (a, b) => b - a );
    
    let last = people.length - 1;
    for( let i = 0; i < people.length; i++ ) {
        const weight = limit - people[i];
        answer++;
        
        // 가벼운 사람의 몸무게가 보트에 수용할 수 있는 몸무게보다 작을 경우
        // === 보트에 태울 수 있다.
        if( weight >= people[last] ) {
            last--;
        }
        
        // 대기열에 아무도 없는 경우
        if( i >= last ) {
            return answer;
        }   
    }
}

이전에 풀어보았던 문제지만 눈에 띄어서 다시 풀어보았다. 예전에는 for문을 안쓰고 reduce로 풀었는데 이번에는 늘하던대로? for문을 사용했다.

복사했습니다!