Skip to content

Commit cb94437

Browse files
committed
[Silver IV] Title: 동전 0, Time: 96 ms, Memory: 9608 KB -BaekjoonHub
1 parent b875d0c commit cb94437

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# [Silver IV] 동전 0 - 11047
2+
3+
[문제 링크](https://www.acmicpc.net/problem/11047)
4+
5+
### 성능 요약
6+
7+
메모리: 9608 KB, 시간: 96 ms
8+
9+
### 분류
10+
11+
그리디 알고리즘
12+
13+
### 제출 일자
14+
15+
2025년 1월 17일 17:33:19
16+
17+
### 문제 설명
18+
19+
<p>준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.</p>
20+
21+
<p>동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.</p>
22+
23+
### 입력
24+
25+
<p>첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)</p>
26+
27+
<p>둘째 줄부터 N개의 줄에 동전의 가치 A<sub>i</sub>가 오름차순으로 주어진다. (1 ≤ A<sub>i</sub> ≤ 1,000,000, A<sub>1</sub> = 1, i ≥ 2인 경우에 A<sub>i</sub>는 A<sub>i-1</sub>의 배수)</p>
28+
29+
### 출력
30+
31+
<p>첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.</p>
32+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
let fs = require('fs');
2+
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
3+
4+
const arr = input[0].split(' ');
5+
const n = arr[0];
6+
let k = arr[1];
7+
let priceArr = [];
8+
let answer = 0;
9+
10+
for (let i = 1; i < n + 1; i++) {
11+
priceArr.push(input[i]);
12+
}
13+
14+
for (let j = n - 1; j > -1; j--) {
15+
let quotient = Math.floor(k / priceArr[j]);
16+
if (quotient >= 1) {
17+
answer += quotient;
18+
k -= quotient * priceArr[j];
19+
}
20+
}
21+
22+
console.log(answer);
23+
24+
// n 개수만큼 주어진 값을 배열에 담는 기능
25+
// 계산하는 기능

0 commit comments

Comments
 (0)