[알고리즘] Algorithm Challenge_2023.4.12

우기·2023년 4월 12일
0
post-thumbnail

1️⃣ 예산


풀이

function solution(d, budget) {
let aaa =d.sort((a,b)=>a-b)
console.log(aaa)
let happy = budget;
let answer = [];

for(let i=0; i<aaa.length; i++){
  if(happy>aaa[i]){
    happy -= aaa[i]
    answer.push(aaa[i])
  }else if(happy===aaa[i]){
    answer.push(aaa[i])
      break
  }
}
return answer.length
}

📝 풀이 설명

  • sort를 사용해 정렬했다.
  • 반복문을 사용해 들어오는 값과 정렬된 배열의 처음 값이랑 비교해 예산이 크면 예산에다가 배열 값을 빼고 변수에 넣고 뺀 배열의 값을 다른 배열에 넣는다.
  • 그리고 만약 둘의 값이 같으면 빼기는 안 하고 그냥 배열의 값을 넣어준다.
  • break를 넣은 이유는 [11,11,11] 이고 예산 값이 11이면 안끝나고 계속 반복하기 때문에 break를 넣어서 반복문을 중단시켰다.
  • 그리고 answer의 배열의 길이가 정답이다.
profile
개발 블로그

0개의 댓글