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