본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 11047/javascript] 동전 0

by tokkiC 2022. 10. 7.

그리디 문제

동전을 최소로 사용해서 해당 숫자를 만들어 내면 되는 문제와 비슷한 문제이다

동전의 종류를 배열로 받아 큰 단위부터 빼주면 되는 문제이다

https://www.acmicpc.net/problem/11047

 

11047번: 동전 0

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)

www.acmicpc.net

let input = [];

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input.push(line);
});

readline.on("close", () => {
  solution(input);
  process.exit();
});

const solution = (inp) => {
  let [n, k] = inp
    .shift()
    .split(" ")
    .map((el) => Number(el));
  let arr = inp.map((el) => Number(el));
  let arrlen = arr.length;

  let temp = k;
  let cnt = 0;

  for (let i = arrlen - 1; i >= 0; i--) {
    if (temp === 0) {
      break;
    }
    if (Math.floor(temp / arr[i]) < 0) {
      continue;
    }

    let cal = Math.floor(temp / arr[i]);
    temp -= cal * arr[i];
    cnt += cal;
  }
  console.log(cnt);
};

댓글