염딩코

[Javascript] 프로그래머스 Lv.2 구명 보트 본문

알고리즘 PS/Javascript

[Javascript] 프로그래머스 Lv.2 구명 보트

johnyeom 2023. 7. 31. 15:24

 

이 문제는 크게 어렵지 않았는 데, 자꾸 틀렸다.

테스트케이스는 바로 맞았지만 문제는 한 구명보트에 최대로 2명만 탈 수 있다는 조건을 뒤늦게 확인했다는 점이다.

제한사항에 없는 조건도 문제에서 있기 때문에 꼼꼼하게 따져야 할 것 같다.

코드를 작성할 때, 주석으로 달아놓는 것도 좋은 습관인 것 같다.

 

 

나의 풀이

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

  while(people.length > 0) {
    const lastPerson = people.pop();
    let lastWeight = limit - lastPerson;
    if (people[0] <= lastWeight) {
        people.splice(0, 1);
    }
    cnt++;
  }
  return cnt;
}

 

 

참고하면 좋은 풀이

function solution(people, limit) {
    var answer = 0;
    people = people.sort((a,b)=>b-a)
    for(let i =0, j = people.length-1; i <= j ; i++ ){
        if(people[i]+people[j] <= limit) j--
        answer++
    }

    return answer;
}