프로그래머스 n보다 커질 때까지 더하기 자바스크립트 알고리즘 풀이
문제
나의 풀이
아이디어
reduce 메서드를 이용하여 누산값이 n보다 작거나 같을 때만 원소를 더하고, 아닐 때는 더하지 않는다.
코드
function solution(numbers, n) {
return numbers.reduce((total, v) => total + (total <= n ? v : 0), 0);
}
다른 사람 풀이
function solution(numbers, n) {
let sum = 0;
for(let i = 0; i<numbers.length; i++) {
sum += numbers[i]
if(sum > n) break;
}
return sum;
}
반복문을 이용한 풀이.
조건에 충족하면 바로 반복문을 마치기 때문에 reduce보다 좀더 효율적인 코드가 될 수 있어보인다.