https://school.programmers.co.kr/learn/courses/30/lessons/12982
나의 코드
function solution(d, budget) {
d.sort((a,b)=> a - b)
let count = 0
d.reduce((acc,cur)=>{
if(acc + cur <= budget){
acc = acc + cur
count++
}
return acc
},0)
return count;
}
정렬을 해준뒤 reduce를 사용해서 조건에 맞을 때만 더해주고 count를 ++ 해준다.
(reduce 메소드는 원형 배열을 변형시키지 않는다)
sort메소드는 원형 배열을 변형시킨다.
처음에 if문 사용할때 실수를 했다.
if(acc <= budget)
이렇게 했는데 이러면
d = [1,2,3,4,5]이고 budget = 9 일때
1~3까지 더하면 6이되는데
이때 if문을 통과하면 +4가 되면서 10이 되면서 budget을 초과하게된다.
그래서 문제가 원하는 결과를 얻지 못한다.
'알고리즘 > 프로그래머스 - JS' 카테고리의 다른 글
[프로그래머스-JS] level.1 2016년 ( 요일 맞추기) (0) | 2022.07.21 |
---|---|
[프로그래머스-JS] level.1 두 개 뽑아서 더하기 (0) | 2022.07.19 |
[프로그래머스-JS] level.1 3진법 뒤집기 (0) | 2022.07.15 |
[프로그래머스-JS] level.1 약수의 개수와 덧셈 (0) | 2022.07.14 |
[프로그래머스-JS] level.1 실패율 (0) | 2022.07.14 |