

class Solution:
def climbStairs(self, n: int) -> int:
step = [0] * (n + 1)
step[1] = 1
if n >= 2:
step[2] = 2
for i in range(3, n+1):
step[i] = step[i-2] + step[i-1]
return step[n]
동적계획법을 사용하여 문제를 풀었다.
class Solution:
def climbStairs(self, n: int) -> int:
if n <= 2:
return n
a, b = 1, 2
for _ in range(3, n + 1):
a, b = b, a + b
return b
이렇게 훨씬 간단하고 깔끔하게 풀 수 있는 방법이 있어 가져왔다.
내일의 알고리즘 문제를 풀어보고 이해하기
#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL