본문 바로가기
2025 코딩 테스트

[ 프로그래머스 ] JS - 예산

by 주연배 2025. 1. 8.

문제

 

풀이

이번 문제는 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; //초과하지 않는 수들의 항목을 반환
}

 

복잡하게 생각하지 않으면 간단하게 풀 수 있는 문제였던 것 같다!