https://programmers.co.kr/learn/courses/30/lessons/12982
테스트 코드가 풀리긴 풀렸지만 맞는지는 모르겠다. 처음에는 많은 갯수를 구하는게 아니구 딱 맞는 수를 구하는줄 알고 맨뒤부터 잘라내는 재귀로 풀었지만 다시읽어보니 그냥 예산 안에 많은 물품을 사는 거여서그냥 단순하게 작은수 부터 더하도록 풀었다. 고차함수를 쓰게 될 경우 중간에 멈출 수 가 없으니까(break) 보기엔 더럽더라도 그냥 for문을 돌리는게 나을 것 같아서 for문으로 작성하게되었다
function solution(d, budget) {
d=d.sort((a,b)=>a-b)
let result =0// 합
let count =0//갯수
for(let i=0;i<d.length;i++){
if (result+d[i]<budget){
result+=d[i]
count+=1
}
else if(result+d[i]===budget){
result+=d[i]
count+=1
break
}
else{
break
}
}
return count
}
여기서 주의할 점은 result+d[i]와 budget이 같은경우다. 더하면서 for문을 멈춰주어야 하기때문에 else if문으로 따로 작성해주어야한다
'알고리즘 > 프로그래머스 문제-JS' 카테고리의 다른 글
[JS] 비밀지도 (0) | 2022.07.03 |
---|---|
[JS]최대공약수와 최소공배수 (0) | 2022.06.27 |
[JS]숫자 문자열과 영단어 (0) | 2022.05.31 |
[JS]가운데 글자 가져오기 (0) | 2022.05.31 |
[JS]같은 숫자는 싫어 (0) | 2022.05.31 |