본문 바로가기
알고리즘/프로그래머스 문제-JS

[JS]예산

by sweesweet 2022. 6. 26.

https://programmers.co.kr/learn/courses/30/lessons/12982

 

코딩테스트 연습 - 예산

S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는

programmers.co.kr

테스트 코드가 풀리긴 풀렸지만 맞는지는 모르겠다. 처음에는 많은 갯수를 구하는게 아니구 딱 맞는 수를 구하는줄 알고 맨뒤부터 잘라내는 재귀로 풀었지만 다시읽어보니 그냥 예산 안에 많은 물품을 사는 거여서그냥 단순하게 작은수 부터 더하도록 풀었다. 고차함수를 쓰게 될 경우 중간에 멈출 수 가 없으니까(break) 보기엔 더럽더라도 그냥 for문을 돌리는게 나을 것 같아서 for문으로 작성하게되었다

 

function solution(d, budget) {
 d=d.sort((a,b)=>a-b)
let result =0// 합 
let count =0//갯수

          for(let i=0;i<d.length;i++){
             if (result+d[i]<budget){
                 result+=d[i]
                 count+=1
             }
             else if(result+d[i]===budget){
                 result+=d[i]
                 count+=1
                 break
             }
              else{
                  break
              }
          }  


    return count
}

여기서 주의할 점은 result+d[i]와 budget이 같은경우다. 더하면서 for문을 멈춰주어야 하기때문에 else if문으로 따로 작성해주어야한다

'알고리즘 > 프로그래머스 문제-JS' 카테고리의 다른 글

[JS] 비밀지도  (0) 2022.07.03
[JS]최대공약수와 최소공배수  (0) 2022.06.27
[JS]숫자 문자열과 영단어  (0) 2022.05.31
[JS]가운데 글자 가져오기  (0) 2022.05.31
[JS]같은 숫자는 싫어  (0) 2022.05.31