- 예산
물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다.
부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요.
function solution(d, budget) {
let a = d.sort((a,b)=> a-b);
let b = [];
let c = 0;
for (let i =0; i< a.length; i++ ) {
if ( c <= budget) {
c += a[i];
b.push(a[i]);
}
}
if ( c > budget) {
return b.length -1;
} else {
return b.length;
}
};
- 약수의 합
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
function solution(n) {
let answer = 0;
for( let i =1; i <=n; i++ ) {
if( n%i === 0) {
answer += i ;
}
}return answer
}
- 백준 5585 문제
타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오.
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split(' ');
let num = Number(input);
function solution(num) {
let a = 1000 - num;
let coin = [500, 100, 50, 10, 5, 1];
let count = 0;
for (let i = 0; i < coin.length; i++) {
count += parseInt(a / coin[i]);
a = a % coin[i];
}
return count;
}
console.log(solution(num));