File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @link https://leetcode.com/problems/unique-paths/
3
+ *
4
+ * ์ ๊ทผ ๋ฐฉ๋ฒ :
5
+ * - ์์๋ถํฐ ๋๊น์ง ๋์ ๋ ๊ฒฝ๋ก์ ์ ์ฐพ์์ผ ํ๋๊น dp ์ฌ์ฉ
6
+ * - ์ฒซ ๋ฒ์งธ ํ๊ณผ, ์ฒซ ๋ฒ์งธ ์ด์ 1๋ก ๊ณ ์ ์ด๋ผ์ dp ๋ฐฐ์ด์ 1๋ก ์ด๊ธฐํํจ
7
+ * - ์ ํ์ : dp[x][y] = dp[x-1][y] + dp[x][y-1]
8
+ *
9
+ * ์๊ฐ๋ณต์ก๋ : O(m * n)
10
+ * - m * n ํ๋ ฌ ํฌ๊ธฐ๋งํผ ์ํํ๋๊น O(m * n)
11
+ *
12
+ * ๊ณต๊ฐ๋ณต์ก๋ : O(m * n)
13
+ * - ์ฃผ์ด์ง ํ๋ ฌ ํฌ๊ธฐ๋งํผ dp ๋ฐฐ์ด์ ๊ฐ ์ ์ฅํ๋๊น O(m * n)
14
+ */
15
+ function uniquePaths ( m : number , n : number ) : number {
16
+ // m x n ๋ฐฐ์ด ์ ์ธ
17
+ const dp = Array . from ( { length : m } , ( ) => Array ( n ) . fill ( 1 ) ) ;
18
+
19
+ for ( let i = 1 ; i < m ; i ++ ) {
20
+ for ( let j = 1 ; j < n ; j ++ ) {
21
+ dp [ i ] [ j ] = dp [ i - 1 ] [ j ] + dp [ i ] [ j - 1 ] ;
22
+ }
23
+ }
24
+
25
+ return dp [ m - 1 ] [ n - 1 ] ;
26
+ }
27
+
28
+ // ๊ณต๊ฐ ๋ณต์ก๋๋ฅผ O(n)์ผ๋ก ์ต์ ํํ๊ธฐ ์ํด์ 1์ฐจ์ dp ๋ฐฐ์ด ์ฌ์ฉ
29
+ function uniquePaths ( m : number , n : number ) : number {
30
+ // m x n ๋ฐฐ์ด ์ ์ธ
31
+ const rows = Array ( n ) . fill ( 1 ) ;
32
+
33
+ for ( let i = 1 ; i < m ; i ++ ) {
34
+ for ( let j = 1 ; j < n ; j ++ ) {
35
+ rows [ j ] = rows [ j ] + rows [ j - 1 ] ;
36
+ }
37
+ }
38
+
39
+ return rows [ n - 1 ] ;
40
+ }
You canโt perform that action at this time.
0 commit comments