2293. 동전 1
2293번: 동전 1
첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다.
www.acmicpc.net
- 풀이
- num의 값들이 다 다르게 들어오므로 num하나하나 돌아가면서 넣기
- 앞 값들이 미리 다 계산된 상태로 dp를 돌면 중복되는 부분이 발생
- num의 값을 하나 돌때마다 전체를 돌면서 개별적으로 더해주기
https://mong9data.tistory.com/68 참고
n,k=map(int,input().split())
num=[]
for _ in range(n):
num.append(int(input()))
dp=[0 for _ in range(k+1)]
dp[0]=1 #num에 2가 들어있는 경우 더해줘야하므로
for i in num:
for j in range(k+1):
if j-i<0: continue
dp[j]+=dp[j-i]
print(dp[k])
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준][DP][LCS] 9251. LCS(최장공통부분수열) (0) | 2024.02.28 |
|---|---|
| [백준][DP] 2193. 이친수 (0) | 2024.02.28 |
| [백준][DP] 9095. 1,2,3 더하기 (0) | 2024.02.22 |
| [백준][BFS][다익스트라] 1261. 알고스팟 (0) | 2024.02.21 |
| [백준][DP] 5557. 1학년 (1) | 2024.02.16 |