From 7758c2928816c7fc3fbee50de79e09b35aa38cff Mon Sep 17 00:00:00 2001 From: legitgoons Date: Sat, 21 Dec 2024 10:37:02 +0900 Subject: [PATCH] Climbing Stairs --- legitgoons/Climbing Stairs.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 legitgoons/Climbing Stairs.ts diff --git a/legitgoons/Climbing Stairs.ts b/legitgoons/Climbing Stairs.ts new file mode 100644 index 0000000..ad867c8 --- /dev/null +++ b/legitgoons/Climbing Stairs.ts @@ -0,0 +1,26 @@ +/** + * 1칸 Or 2칸 + * 45칸이면 일단 1+1+...+1 + * n = 1 return 1 + * n = 2 return 2 + * n = 3 return 3 + * n = 4 return 5 [1, 1, 1, 1] [2, 1, 1] [1, 2, 1] [1, 1, 2] [2, 2] + * n = 5 return 8 [1, 1, 1, 1, 1] [2, 1, 1, 1] [1, 2, 1, 1][1, 1, 2, 1][1, 1, 1, 2][2, 2, 1][2, 1, 2][1, 2, 2] + * 1, 2, 3, 5, 8 -> n = (n-2)번째 + (n-1)번째 + * 새로운 함수 호출하니까 시간때문에 터짐 -> 걍 반복문 돌리자 + */ + +function climbStairs(n: number): number { + if (n <= 3) return n; + + let x = 2; + let y = 3; + let sum = 0; + + for (let i = 4; i <= n; i++) { + sum = x + y; + x = y; + y = sum; + } + return sum; +}