코딩 테스트/프로그래머스 level2

구명보트

fullfish 2022. 9. 10. 00:49

코드

function solution(people, limit) {
  let boat = [];
  let num = 1;
  people = people.sort((a, b) => b - a);
  for (let i = 0; i < people.length; i++) {
    if (people[i] > limit / 2) {
      boat.push([people[i]]);
    } else {
      if (boat[boat.length - num][0] + people[i] <= limit) {
        boat[boat.length - num].push(people[i]);
        num++;
      } else {
        boat.push([people[i]]);
      }
    }
  }
  return boat.length;
}

사람들을 내림차순으로 정렬한 후

limit/2보다 큰 사람들을 boat에 태운다

그리고 마지막 boat에 남은 사람중 가장 무거운 사람이 탈 수 있는지 확인한다

num이라는 변수를 만들어서 마지막 보트에 사람이 탔다면 그 이전 보트와 확인 할 수 있게끔 했다

'코딩 테스트 > 프로그래머스 level2' 카테고리의 다른 글

[1차] 캐시  (0) 2022.09.10
멀리 뛰기  (0) 2022.09.10
행렬의 곱셈  (0) 2022.09.09
짝지어 제거하기  (0) 2022.09.09
예상 대진표  (0) 2022.09.09