문제
풀이
이번 문제는 2가지 방법으로 풀어보았다.
1. reduce를 이용한 방법
reduce() : 누적값(arr)과 현재값(cur)을 통해 하나의 값을 반환한다 (누산)
function solution(d, budget) { let answer = 0; d.sort((a,b)=>a-b); // 오름차순 정렬, 예산 내에서 가능한 많은 선택을 위해서 d.reduce((arr,cur)=>{ if(arr+cur<=budget){ answer++; return arr+cur //현재 누적된 값 } //if },0); return answer //최종적으로 선택된 항목 수 }
2. for문을 이용한 방법
function solution(d, budget) { let answer = 0; let save = 0; for(let i=0; i<d.length; i++){ save += d[i] //배열의 (전체)값을 누적시킴 if(save <= budget) answer++; //budget를 초과하지 않는 수들만 answer++로 1씩 증가시키기! } return answer; //초과하지 않는 수들의 항목을 반환 }
복잡하게 생각하지 않으면 간단하게 풀 수 있는 문제였던 것 같다!
'2025 코딩 테스트' 카테고리의 다른 글
[ 프로그래머스 ] JS - 모의고사 (완전탐색) (0) | 2025.01.08 |
---|---|
[ 프로그래머스 ] JS - 완주하지 못한 선수 (해시) (0) | 2025.01.05 |
2025 코딩 테스트 - 01 (0) | 2025.01.05 |