프로그래머스 Lv.1 : 예산

zeroequaltwo·2022년 11월 17일
0

코딩테스트

목록 보기
32/69

문제

프로그래머스 문제

내 풀이

function solution(d, budget) {
    let max = 0;
    let count = 0;
    for (each of d.sort((a,b) => a-b)){
        if(max + each <= budget){ 
            max += each;
            count++;
        } else {
            break;
        }
    }
    return count;
}

개선점

  • 아래 풀이를 통해 findIndex()와 ~연산자의 존재를 알았다.
  • ~ 는 bitwise Not인데 말그대로 bit단위를 반대로 바꾼다는 거다.(0 <-> 1)
  • findIndex()도 매칭되는 값을 못찾으면 -1을 리턴하는데 0이 아닌 값은 true로 보기 때문에 그럴 때 ~를 많이 사용한다고 한다.
function solution(d, budget) {
    return ~(~d.sort((a,b)=>a-b).map(v => budget -= v).findIndex(v => v < 0) || ~d.length);
}
profile
나로 인해 0=2가 성립한다.

0개의 댓글