동전2 | 백준 2294번




주석으로 설명을 대체하고자 한다.

상세 설명을 하면, 이 문제는 sorting을 한 후 풀면 더 쉽지만, 시간 효율을 고려해 다음과 같이 풀었다.

처음 scanf를 할 때, 가진 동전을 표시한다. 예를 들면 위의 코드에서 15를 입력했다면 K[15]=1 로 15 동전이 있는 것을 표시.

아래 반복문에서는 표시한 동전이 있는 경우 무시한다. 왜냐면 걘 어짜피 하나면 되거든.

그 안의 반복문은 동전 개수만큼 반복하는 것이고,

  1. 첫 번째 조건문은 동전을 뺐을 때 값이 0보다 작으면 무시해 버린다.
  2. 두 번째 조건문은 동전을 뺐을 때 값이 계산할 수 없었던 애라면 무시해 버린다.
  3. 세 번째 조건문은 동전 뺐을 때 필요한 동전 수에 하나를 더해서 그 값이 더 작다면 걔를 num으로 넣어준다.

알고리즘 분류 : 다이나믹 프로그래밍
Previous
Next Post »