File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,3 +15,34 @@ def fibonacci(step):
1515 fibonacci (3 )
1616
1717 return memo [n ]
18+
19+
20+ # 7๊ธฐ ํ์ด
21+ # ์๊ฐ ๋ณต์ก๋: O(n)
22+ # - memoization์ ์ด์ฉํด ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ์ ํ๋ฉด, ๊ณ์ฐ์ 0 ~ n๊น์ง ํ ๋ฒ์ฉ๋ง ๊ณ์ฐ
23+ # - ์ฆ, ๊ณ๋จ์ ๊ฐ์ n์ด ์ต๋ ๊ณ์ฐ ํ์์ด๋ฏ๋ก ์ ์ฒด ์ฐ์ฐ์ O(n)
24+ # ๊ณต๊ฐ ๋ณต์ก๋: O(n)
25+ # - memoization์ ํ๊ธฐ ์ํ dict์ ์ต๋ n์ ๊ฐ์๋งํผ๋ง ์ ์ฅ
26+ # - ์ฌ๊ท ํธ์ถ ์คํ ๊น์ด๋ ์ต๋ n
27+ class Solution :
28+ # ํด๋น ๋ฌธ์ ๋ ์ด์ ๊ณ๋จ๊น์ง ๊ณ์ฐ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ์๊ฐ๋ฉฐ ํ์ฌ ๊ณ๋จ๊น์ง ์ค๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐํ๋ค.
29+ # n๋ฒ์งธ ๊ณ๋จ๊น์ง ์ค๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ (n-1๋ฒ์งธ๊น์ง ์ค๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์) + (n-2๋ฒ์งธ๊น์ง ์ค๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์)์ด๋ค.
30+ # ์ด๋ ๋์ ํ๋ก๊ทธ๋๋ฐ์ ์ด์ฉํด memoization์ ํ๋ฉฐ ํ ์ ์๋ ๋ฌธ์ ๋ผ๊ณ ํ ์ ์๋ค.
31+ def climbStairs (self , n : int ) -> int :
32+ memo = {}
33+
34+ def dfs (n ):
35+ # n์ด 0 ๋๋ 1์ผ ๊ฒฝ์ฐ์๋ ํ๋์ ๋ฐฉ๋ฒ๋ง ์๊ธฐ ๋๋ฌธ์ memo์ 1์ ๋ฃ๊ณ returnํด์ค๋ค.
36+ if n <= 1 :
37+ memo [n ] = 1
38+ return memo [n ]
39+
40+ # memoization์ ์ด๋ฏธํ ๊ฒฝ์ฐ์๋ memo์์ ๊ฒฐ๊ณผ๋ฅผ ๊บผ๋ด returnํด์ค๋ค.
41+ if n in memo :
42+ return memo [n ]
43+
44+ # (n๋ฒ์งธ๊น์ง ์ค๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์) = (n-1๋ฒ์งธ๊น์ง ์ค๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์) + (n-2๋ฒ์งธ๊น์ง ์ค๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์)
45+ memo [n ] = dfs (n - 1 ) + dfs (n - 2 )
46+ return memo [n ]
47+
48+ return dfs (n )
You canโt perform that action at this time.
0 commit comments