한 걸음씩
[프로그래머스][JS] 예산 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12982
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 과정
function solution(d, budget) {
d.sort((a, b) => a - b)
let cnt = 0
for (let i = 0; i < d.length; i++){
if (budget >= d[i]){
// console.log(`budget이 d[i]보다 크거나 같으면 중단: budget : ${budget}, d[i] :${d[i]}`)
budget -= d[i]
cnt++
}else{
break
}
}
return cnt
}
입력값 〉 [1, 3, 2, 5, 4], 9
기댓값 〉 3
실행 결과 〉 테스트를 통과하였습니다.
출력 〉
budget이 d[i]보다 크거나 같으면 중단: budget : 9, d[i] :1
budget이 d[i]보다 크거나 같으면 중단: budget : 8, d[i] :2
budget이 d[i]보다 크거나 같으면 중단: budget : 6, d[i] :3
// d[i]가 4일 경우에 budget이 2(6 - 4)가 되므로 2 >= 4는 false이기 때문에 else구문으로 빠져 반복을 중단
리뷰
오름차순으로 정렬하여 (예산 - 가장 작은 수부터) 반복을 하다가 예산이 빼는 수보다 작아지면 반복을 중단하고 반복하면서 뺀 횟수를 반환한다.
문제 설명이 좀 장황해서 어렵게 느껴지는데 d배열에서 숫자가 작은 것부터 물품을 구매해 주면 된다.
'Programmers' 카테고리의 다른 글
[프로그래머스][JS] 소수 찾기 ✅ (0) | 2023.07.16 |
---|---|
[프로그래머스][JS] 소수 만들기✅ (0) | 2023.07.16 |
[프로그래머스][JS] 폰켓몬 (1) | 2023.07.15 |
[프로그래머스][JS] 특이한 정렬 (0) | 2023.07.15 |
[프로그래머스][JS] 문자열 내 마음대로 정렬하기 (0) | 2023.07.14 |