728x90
풀이
가치가 가장 큰 동전부터 K이하일 때 하나씩 빼주고 횟수를 세주면 된다.
소스코드
#include <stdio.h>
int main(){
int N, K;
scanf("%d %d", &N, &K);
int coin[N];
for (int i = 0; i < N; i++)
scanf("%d", &coin[i]);
int cnt = 0, idx = N-1;
while (K)
if (K < coin[idx]) idx--;
else {
K -= coin[idx];
cnt++;
}
printf("%d", cnt);
}
출처
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
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 1676] 팩토리얼 0의 개수 [C] (0) | 2021.08.09 |
---|---|
[백준 2293] 동전 1 [C] (0) | 2021.08.09 |
[백준 10993] 별 찍기 - 18 [C] (0) | 2021.08.08 |
[백준 11727] 2×n 타일링 2 [C] (0) | 2021.08.08 |
[백준 18870] 좌표 정렬 [C/C++] (0) | 2021.08.08 |