File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * π’ λ¬Έμ μ΄λ¦: coin-change
3
+ * π§© λ¬Έμ μ ν: dp
4
+ * π‘ ν΅μ¬ μμ΄λμ΄
5
+ * - κΈμ‘ iλ₯Ό λ§λ€ μ μλ μ΅μ λμ μλ₯Ό dp[i]μ μ μ₯
6
+ * - νμ λ¬Έμ dp[i - coin]μμ 1κ°λ₯Ό μΆκ°νλ λ°©μ
7
+ * - dp[0] = 0μ μμμΌλ‘ bottom-up λ°©μμΌλ‘ μ νμμ μ±μλκ°λ€
8
+ *
9
+ * π μκ°λ³΅μ‘λ: O(n * k) β n = amount, k = coins.length
10
+ * π¦ 곡κ°λ³΅μ‘λ: O(n)
11
+ */
12
+
13
+ function coinChange ( coins , amount ) {
14
+ //1. dp λ°°μ΄μ μ€μ ν©λλ€.
15
+ const dp = new Array ( amount + 1 ) . fill ( Infinity ) ;
16
+ dp [ 0 ] = 0 ;
17
+ //2. νμνμ¬ μ΅μλμ μ κ°μλ₯Ό λ΄μ dpλ°°μ΄μ μ±μλλ€.
18
+ for ( let i = 1 ; i <= amount ; i ++ ) {
19
+ for ( let coin of coins ) {
20
+ //μ½μΈμ μ¬μ©κ°λ₯νλ€λ©΄, λΉκ΅κ΅
21
+ if ( i - coins >= 0 ) {
22
+ dp [ i ] = Math . min ( dp [ i ] , dp [ i - coin ] + 1 ) ;
23
+ }
24
+ }
25
+ }
26
+ // 3. amount κ°μ΄ Infinity λΌλ©΄ λΆκ°λ₯νλ€λΌλ μλ―ΈκΈ°λλ¬Έμ -1 리ν΄ν΄
27
+ return dp [ amount ] === Infinity ? - 1 : dp [ amount ] ;
28
+ }
You canβt perform that action at this time.
0 commit comments