계단오르기(Top-Down : 메모이제이션)
3675 단어 파이썬 알고리즘 문제풀이파이썬 알고리즘 문제풀이
Dynamic programming(동적계획법)
문제 ✏️
계단오르기(Top-Down : 메모이제이션)
철수는 계단을 오를 때 한 번에 한 계단 또는 두 계단씩 올라간다. 만약 총 4계단을 오른다면 그 방법의 수는 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2 로 5가지이다.
그렇다면 총 N계단일 때 철수가 올라갈 수 있는 방법의 수는 몇 가지인가?
▣ 입력설명
첫째 줄은 계단의 개수인 자연수 N(3≤N≤45)이 주어집니다.
▣ 출력설명
첫 번째 줄에 올라가는 방법의 수를 출력합니다.
▣ 입력예제 1
7
▣ 출력예제
21
코드 💻
import sys
#sys.stdin = open("input.txt", "rt") # read text
def DFS(len):
if dy[len] > 1:
return dy[len]
if len == 1 or len == 2:
return len
else:
dy[len] = DFS(len-1) + DFS(len-2)
return dy[len]
if __name__ == "__main__":
n = int(input())
dy = [n] * (n + 1)
print(DFS(n))
참고
- 인프런 : 파이썬 알고리즘 문제 풀이
Author And Source
이 문제에 관하여(계단오르기(Top-Down : 메모이제이션)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsj3282/계단오르기Top-Down-메모이제이션저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)