Skip to content
On this page

백준 11047 JavaScript

수정하기
문서 생성 2022-04-22 21:52:28 최근 수정 2022-04-22 23:56:07
On this page

문제

백준 11047

풀이

const readFileSyncPath = require("path")
.basename(__filename)
.replace(/js$/, "txt");
// const readFileSyncPath = '/dev/stdin';
const input = require("fs")
.readFileSync(readFileSyncPath)
.toString()
.trim()
.split("\n");
// 동전 N 종류로 합 K 만들기
// 필요한 동전 개수의 최솟값
// 최소개수라면 그리디..?
// 합 K보다 작은 단위 중 제일 큰 값으로 나눠 갯수를 구하고
// 남은 돈은 그 남은 돈보다 작은 단위 중 제일 큰 값으로 나누는 것을 반복
const [N, K] = input[0].split(" ").map(Number);
let cnt = 0;
let remain = K;
for (let i = N; i >= 1; i--) {
const coin = Number(input[i]);
if (coin <= remain) {
cnt = cnt + parseInt(remain / coin);
remain = remain % coin;
}
}
console.log(cnt);