문제
https://www.acmicpc.net/problem/14916
설명
- DP (다이나믹 프로그래밍)
- 1부터 9까지의 숫자 중에서 -1이 나오는 경우는 1과 3밖에 없다. 그리고 나머지 값들에 대해서는 미리 해당하는 동전 개수를 할당해주었고, 10부터의 숫자는 동일한 규칙을 발견할 수 있다.
10원 : 5원 * 2 + 2원 * 0 => (5원) + 1개
11원 : 5원 * 1 + 2원 * 3 => (6원) + 1개
12원 : 5원 * 2 + 2원 * 1 => (7원) + 1개
.
.
코드
n = int(input())
# 0 1 2 3 4 5 6 7 8 9
dp = [-1, -1, 1, -1, 2, 1, 3, 2, 4, 3]
for i in range(10, n+1):
dp.append(dp[i-5]+1)
print(dp[n])
'Koala - 13기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[Baekjoon/C++] 3273번: 두 수의 합 (0) | 2024.01.24 |
---|---|
[백준/Python] 11726번 : 2xn 타일링 (0) | 2024.01.22 |
[백준/Python] 14495번: 피보나치 비스무리한 수열 (0) | 2024.01.21 |
[백준/C++] 14916 거스름돈 (0) | 2024.01.21 |
[백준/C++] 18111번: 마인크래프트 (0) | 2024.01.21 |