
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
let n = 1000 - Number(fs.readFileSync(path));
let ans = 0;
while (true) {
let coin;
if (n >= 500) coin = 500;
else if (n >= 100) coin = 100;
else if (n >= 50) coin = 50;
else if (n >= 10) coin = 10;
else if (n >= 5) coin = 5;
else {
ans += n;
break;
}
ans += Math.floor(n / coin);
n = n % coin;
}
console.log(ans);
⏰ 소요한 시간 : -
그리디 문제 유형..!
큰 금액부터 나누어주면 된다.
만약 500원보다 크다면 ans에 n을 500으로 나눈 값을 내림하여 더해주면 되고 나머지는 n에 재할당해준다. 나머지 금액도 계속 확인해준 뒤 1원단위가 되었을 때 반복을 종료해주면 된다...!