본문 바로가기
backjoon/그리디알고리즘

백준 11047번 동전0 c언어

by 정구지개발자 2023. 1. 19.
728x90

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

1. 처음에 scanf받을떄 부터 K보다 받는 숫자가 크다면 break 걸라고 했는데 예제에 있는 숫자들을 모두 받아야해서 다받았다.

2. 나눗셈을 이용해서 해결할까 생각했다. 빼는게 더 쉬울것이라 생각

3. 뺄때 몇번 뺴는지 숫자를 출력을 하는것이기 때문에 뺄때 마다 count를 1씩 증가해주는 형태로 해결했다.

4. 문제가 K를 만드는데 사용한 동전들의 각각 숫자를 출력하라고 했으면 뺄떄 마다 빼는 동전을 따로 카운트해서 출력했을것이다. 

 

 

나의답안)

#include <stdio.h>

int	main()
{
	int	i, N, K, count;
	int	asset[10] = {0};

	scanf("%d %d", &N, &K);
	i = 0;
	while (i < N)
	{
		scanf("%d", &asset[i]);
		i++;
	}
	i = N - 1;
	count = 0;
	while (K > 0)
	{
		if (asset[i] > K)
		{
			i--;
		}
		else
		{
			K = K - asset[i];
			count++;
		}
	}
	printf("%d", count);
	return (0);
}
728x90

'backjoon > 그리디알고리즘' 카테고리의 다른 글

백준 13305 주유소 c언어  (0) 2023.02.15
백준 11399 ATM c언어  (0) 2023.02.14

댓글