File tree Expand file tree Collapse file tree 3 files changed +63
-0
lines changed Expand file tree Collapse file tree 3 files changed +63
-0
lines changed Original file line number Diff line number Diff line change
1
+ // 시간 복잡도: O(n * m)
2
+ // 공간 복잡도: O(n)
3
+
4
+ /**
5
+ * @param {number[] } coins
6
+ * @param {number } amount
7
+ * @return {number }
8
+ */
9
+ var coinChange = function ( coins , amount ) {
10
+ const dp = new Array ( amount + 1 ) . fill ( Infinity ) ;
11
+ dp [ 0 ] = 0 ;
12
+
13
+ for ( let coin of coins ) {
14
+ for ( let i = coin ; i <= amount ; i ++ ) {
15
+ dp [ i ] = Math . min ( dp [ i ] , dp [ i - coin ] + 1 ) ;
16
+ }
17
+ }
18
+
19
+ return dp [ amount ] === Infinity ? - 1 : dp [ amount ] ;
20
+ } ;
21
+
Original file line number Diff line number Diff line change
1
+ // 시간 복잡도: O(n)
2
+ // 공간 복잡도: O(1)
3
+
4
+ /**
5
+ * @param {number[] } nums
6
+ * @return {number }
7
+ */
8
+ var missingNumber = function ( nums ) {
9
+ const n = nums . length ;
10
+ // 0부터 n까지의 합 공식: n * (n + 1) / 2
11
+ const expectedSum = ( n * ( n + 1 ) ) / 2 ;
12
+ // 실제 배열의 합
13
+ const actualSum = nums . reduce ( ( sum , num ) => sum + num , 0 ) ;
14
+
15
+ return expectedSum - actualSum ;
16
+ } ;
17
+
Original file line number Diff line number Diff line change
1
+ // 시간 복잡도: O(n^2)
2
+ // 공간 복잡도: O(1)
3
+
4
+ /**
5
+ * @param {string } s
6
+ * @return {number }
7
+ */
8
+ var countSubstrings = function ( s ) {
9
+ let count = 0 ;
10
+
11
+ const countPalindrome = ( left , right ) => {
12
+ while ( left >= 0 && right < s . length && s [ left ] === s [ right ] ) {
13
+ count ++ ;
14
+ left -- ;
15
+ right ++ ;
16
+ }
17
+ } ;
18
+
19
+ for ( let i = 0 ; i < s . length ; i ++ ) {
20
+ countPalindrome ( i , i ) ;
21
+ countPalindrome ( i , i + 1 ) ;
22
+ }
23
+
24
+ return count ;
25
+ } ;
You can’t perform that action at this time.
0 commit comments