728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/12982?language=javascript
코딩테스트 연습 - 예산
S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는
programmers.co.kr
코드
function solution(d, budget) {
let answer = 0;
d.sort((a,b) => (a-b)); //오름차순 정렬
for (let i of d) {
if (i > budget) break; //배열의 원소가 budget보다 크다면 break
else {
budget -= i; //배열의 원소가 budget보다 크거나 같아질때까지 원소를 계속 빼기
answer++; //정답 count 올리기
}
}
return answer;
}
후기
- 그리디 알고리즘을 이용하여 풀 수 있는 문제중에 쉬운 문제였다
- 근데 처음에 if else 문 말고 while문으로 접근을 했었고, answer에 d의 요소들을 더해나가는 방식으로 알고리즘을 짰는데 왜인지 오류가 나서 빼주는 방식으로 접근을 달리 했더니 쉽게 해결할 수 있었다!
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] 약수의 개수와 덧셈 / JavaScript (0) | 2022.01.16 |
---|---|
[Programmers] 나머지가 1이 되는 수 찾기 / JavaScript (0) | 2022.01.16 |
[Programmers] 같은 숫자는 싫어 / JavaScript (0) | 2022.01.12 |
[Programmers] 오픈채팅방 / JavaScript (0) | 2022.01.11 |
[Programmers] 실패율 / JavaScript (0) | 2022.01.11 |