본문 바로가기
Coding Test/Solved

[BOJ] 백준 11047번 - 동전 0(with Java)

by Blue Developer 2021. 8. 1.

알고리즘

욕심쟁이 알고리즘의 대표적인 문제로 원래는 동적계획법을 사용해야 최적의 해를 도출할 수 있지만, 주어지는 동전이 특이하기 때문에 욕심쟁이 알고리즘을 사용해야만 최적의 해를 도출할 수 있다. 왜 그런지는 추후에 설명하기로 하겠다. 

 

K원보다 작거나 같은 경우에 대해서 동전의 값을 빼고 K를 업데이트하는 과정을 K가 0이 될 때까지 반복해주면 풀 수 있다. 문제에서 요구하는 것은 K원을 최소로 만드는 동전의 개수이므로, 횟수를 세기 위한 변수 cnt를 이용해서 K에서 값을 빼줄 때마다 cnt를 1씩 증가시켜주면 문제에서 요구하는 답을 도출할 수 있다.

소스코드

문제링크

 

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

댓글