프로그래머스 구명보트 js

정하윤·2022년 11월 25일
0
function solution(people, limit) {
  people.sort((a, b) => {
    return a - b;
  });
  let count = 0;
  for (let i = 0; i < people.length; i++) {
    let counts = i + 1;
    for (let j = i + 1; j < people.length; j++) {
      people[i] += people[j];
      if (people[i] <= limit) {
        counts = counts + 1;
      } else {
        i = counts;
        count = count + 1;
        break;
      }
    }
  }
}

구명보트에 탈 수 있는 사람이 최대 2명이라는 것 을 읽지 못하고 풀었던 코드이다. 문제가 많지만 도중에 발견하여 처음부터 새로 만들어보았다.


function solution(people, limit) {
  var answer = 0;
   people.sort((a, b) => {
    return a - b;
  });
  while (people.length > 0) {
    const p = people.pop(); // 맨뒤의 값 제거
    let w = limit - p; // 제한된 무게에세 제일 무거운 사람을 뺴기
    if (people[0] <= w) {
      people.splice(0, 1); //만약 뺀후 몸무게가 제일 낮은사람의 몸무게보다 높을때 배열내 작은 몸무게 제거
    }
    answer++;
  }
  return answer;
}

최대 2명이라는 것을 알게되어 훨씬 수월했던 것 같다.

0개의 댓글