File tree Expand file tree Collapse file tree 1 file changed +11
-14
lines changed
Expand file tree Collapse file tree 1 file changed +11
-14
lines changed Original file line number Diff line number Diff line change 66 * @returns {number } 우측 하단까지 갈 수 있는 경우의 수
77 *
88 * - 시간 복잡도: O(m * n)
9- * - m x n 크기의 배열을 초기화하고 순회
9+ * - 전체 셀을 한 번씩 순회
1010 *
11- * - 공간 복잡도: O(m * n)
12- * - m x n 크기의 배열을 사용
11+ * - 공간 복잡도: O(n)
12+ * - 1차원 배열 사용 (열 크기만큼의 배열)
1313 */
1414function uniquePaths ( m : number , n : number ) : number {
15- // m x n 크기의 배열을 초기화
16- const dp = Array . from ( { length : m } , ( ) => Array ( n ) . fill ( 0 ) ) ;
15+ // n(열) 크기의 배열을 생성
16+ const dp = Array ( n ) . fill ( 1 ) ;
1717
18- // 첫 번째 셀 (0, 0)은 1로 초기화 (경로 시작점)
19- dp [ 0 ] [ 0 ] = 1 ;
2018
21- for ( let i = 0 ; i < m ; i ++ ) {
22- for ( let j = 0 ; j < n ; j ++ ) {
23- if ( i === 0 && j === 0 ) continue ; // 시작점은 이미 초기화됨
24-
25- // 위쪽과 왼쪽 값을 더해 현재 셀의 경로 수 계산
26- dp [ i ] [ j ] = ( dp [ i - 1 ] ?. [ j ] || 0 ) + ( dp [ i ] ?. [ j - 1 ] || 0 ) ;
19+ for ( let i = 1 ; i < m ; i ++ ) {
20+ for ( let j = 1 ; j < n ; j ++ ) {
21+ // 현재 값 = 위쪽(dp[j]) + 왼쪽(dp[j-1])
22+ dp [ j ] = dp [ j ] + dp [ j - 1 ] ;
2723 }
2824 }
2925
30- return dp [ m - 1 ] [ n - 1 ] ;
26+ // dp[n-1]에 우측 하단까지의 경로 수가 저장
27+ return dp [ n - 1 ] ;
3128}
3229
You can’t perform that action at this time.
0 commit comments