[JavaScript] 프로그래머스 구명보트 LEVEL2

문제출처

function solution(people, limit) {
    let answer = 0;
    let arr = [...people].sort((a,b) => b-a);
    let [left, right] = [0, arr.length-1];
    
    while (left < right) {
        let sum = arr[left] + arr[right];
        
        if (sum > limit) left++;
        else {
            left++;
            right--;
        }
        answer++;
    }
    if (left === right) answer++;
    
    return answer;
}

풀이

  • 한번에 최대 2명만 탈 수 있다...
  • 내림차순으로 정렬하고
  • 혼자 배를 타는 경우엔 left만 +1하고
  • 두명이 배를 타는 경우엔 left + 1 & right - 1을 해준다.

좋은 웹페이지 즐겨찾기