Lv.1 : 예산 [JavaScript]

2022. 9. 14. 21:36Algorithm/프로그래머스

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12982

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


문제 풀이

function solution(d, budget) {
    var answer = 0;
    var sum = 0;
    d.sort((a, b) => a - b);
    
    for(var i=0; i<d.length; i++){
        sum += d[i];
        if(sum > budget) break;
        answer++;
    }
    
    return answer;
}

d를 오름차순으로 정렬한 뒤 budget을 넘지 않을때까지 answer++해가며 sum을 누적한다.

 

sort() 메서드는 

1. 기본적으로 오름차순 정렬

2. 배열 요소를 문자열로 캐스팅 해 그 문자열을 비교하여 순서를 결정

하기 때문에 처음에 d.sort()만 사용했다가 계속 문제를 틀렸다.

 

이를 해결하기 위해선 sort()에 값을 비교해줄 수 있는 함수를 넣어줘야한다.

// 오름차순
arr.sort(function (a, b) {
	return a-b;
});

// 오름차순 : 화살표 함수 사용
arr.sort((a, b) => a - b);

// 내림차순
arr.sort(function (a, b) {
	return b - a;
});

// 내림차순 : 화살표 함수 사용
arr.sort((a, b) => b - a);

 

반응형