70 성공
This commit is contained in:
23
repetition/dp/70.py
Normal file
23
repetition/dp/70.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Climbing Stairs
|
||||||
|
|
||||||
|
|
||||||
|
class Solution:
|
||||||
|
def climbStairs(self, n: int) -> int:
|
||||||
|
before2, before1 = 1, 1
|
||||||
|
answer = before1
|
||||||
|
|
||||||
|
for _ in range(1, n):
|
||||||
|
answer = before1 + before2
|
||||||
|
before2 = before1
|
||||||
|
before1 = answer
|
||||||
|
|
||||||
|
return answer
|
||||||
|
|
||||||
|
"""
|
||||||
|
걸린 시간: 9분
|
||||||
|
|
||||||
|
복잡도: n-1번만큼 반복하기 때문에 시간복잡도는 O(n)이고, 변수 3개를 매번 초기화해가며 활용하기 때문에 공간복잡도는 O(1)이다.
|
||||||
|
|
||||||
|
해설: i번째 칸으로 오는 경우의 수는 i-1번째 칸에서 1칸 올라오는 것과 i-2번째 칸에서 2칸 올라오는 경우이다.
|
||||||
|
두 가지 올라오는 방법이 서로를 포함하지 않기 때문에 두 가지 경우의 수를 더하면 된다.
|
||||||
|
"""
|
||||||
Reference in New Issue
Block a user