프로그래머스 예산 (javascript)

이진우·2022년 7월 26일
0

문제

풀이

function solution(d, budget) {
    let answer = 0
    let total = 0
    let dSort = d.sort((a,b)=> a-b)
    for (let i=0; i<d.length; i++){
        if (total + dSort[i] <= budget){
            total += dSort[i]
            answer ++
        }
    }
    return answer
}

풀이방식

  1. 적은수 부터 합해서 계산해 나가야 하기 때문에 sort 함수를 통해 오름차순으로 배열을 정리해준다.
  2. 반복문을 통해 배열 길이만큼 total에 덧셈을 하고 budget값보다 같거나 작을때 까지만 더하고 정답을 return해 준다.

다른사람의 풀이

function solution(d, budget) {
    let answer = 0;
    let money = 0;
    d.sort((a,b) => a-b).forEach(function(val){
        money += val;
        if(money <= budget){
            answer++;    
        }

    })
    return answer;
}

나와 비슷한 방식이지만 반복문을 쓰지않고 forEach문으로 money에 순차적으로 값을 더하다 money를 이용해 조건문으로 budget보다 작을때까지만 새로운 변수 answer에 ++하는 방식을 사용하였다

풀이 후기

처음에 좀 쉬울줄 알았는데 map도 써보고 reduce도 써보았지만 아직 능숙치 않아서인지 그냥 제일 기본적인 반복문과 조건문으로 문제를 해결했다
효율성에서 시간은 괜찮게 나왔는데 좀더 이문제에 적합한 함수를 사용했더라면 이라는 아쉬움이 묻어난다...🥲

profile
초보개발자의 개발일기

0개의 댓글