File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change 1+
2+
3+ n , k = map (int , input ().split ())
4+
5+ coins = []
6+ dp = [[- 1 ] * (k + 1 ) for _ in range (n + 1 )]
7+ for _ in range (n ):
8+ coins .append (int (input ()))
9+
10+ for i in range (1 , n + 1 ):
11+ for j in range (1 , k + 1 ):
12+
13+ if i == 1 :
14+ # 첫번째 열일때 나누어 떨어지면 몫을 나누어 떨어지지 않으면 -1을 저장한다.
15+ if j % coins [i - 1 ] == 0 :
16+ dp [i ][j ] = j // coins [i - 1 ]
17+ else :
18+
19+ if j <= coins [i - 1 ]:
20+ # 현재 동전의 가치와 딱 나누어 떨어지는 경우
21+ if coins [i - 1 ] == j :
22+ dp [i ][j ] = 1
23+ else :
24+ dp [i ][j ] = dp [i - 1 ][j ]
25+ else :
26+ if dp [i ][j - coins [i - 1 ]] != - 1 and dp [i - 1 ][j ] != - 1 :
27+ dp [i ][j ] = min (dp [i ][j - coins [i - 1 ]] + 1 , dp [i - 1 ][j ])
28+ elif dp [i ][j - coins [i - 1 ]] == - 1 and dp [i - 1 ][j ] == - 1 :
29+ dp [i ][j ] = - 1
30+ elif dp [i ][j - coins [i - 1 ]] == - 1 :
31+ dp [i ][j ] = dp [i - 1 ][j ]
32+ else :
33+ dp [i ][j ] = dp [i ][j - coins [i - 1 ]] + 1
34+
35+
36+
37+ print (dp [n ][k ])
You can’t perform that action at this time.
0 commit comments