반응형
Python : 계단오르기 문제
Dynamic Programming(동적 계획법) 기반 메모이제이션 방식 사용
리트코드 문제 - https://leetcode.com/problems/climbing-stairs/
def climb_stairs(n):
dp = collections.defaultdict(int)
if n <= 2:
return n
if dp[n]:
return dp[n]
dp[n] = climb_stairs(n-1) + climb_stairs(n-2)
# 예) n이 3이라면 n=2일때의 경우의 수 + n=1일때의 경우의 수를 합
return dp[n]
n=3
res = climb_stairs(n)
print(res)
반응형
'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글
[Python] 파이썬 데이터 입력 함수 및 방법 (input().split(), map()) (0) | 2023.03.21 |
---|---|
[프로그래머스] 파이썬 - 영어 끝말잇기 Lv.2 (0) | 2023.03.15 |
[Python]파이썬 - 문제집(백준 1766) #위상정렬/힙 (0) | 2023.03.02 |
[Python]파이썬 - 피보나치 수열 (DP: 메모이제이션 방식) (0) | 2023.02.16 |