철수는 계단을 오를 때 한 번에 한 계단 또는 두 계단씩 올라간다. 만약 총 4계단을 오른다면 그 방법의 수는
1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2 로 5가지이다.
그렇다면 총 N계단일 때 철수가 올라갈 수 있는 방법의 수는 몇 가지인가?
▣ 입력설명
첫째 줄은 계단의 개수인 자연수 N(3≤N≤45)이 주어집니다.
▣ 출력설명
첫 번째 줄에 올라가는 방법의 수를 출력합니다.
▣ 입력예제 1
7
▣ 출력예제 1
21
#import sys
#sys.stdin = open('in.txt', 'rt')
def DFS(L):
if a[L] > 0:
return a[L]
if L == 1 or L == 2:
a[L] = L
return a[L]
else:
a[L] = DFS(L-1)+DFS(L-2)
return a[L]
if __name__ == '__main__':
n = int(input())
print(f'n:{n}')
a = [0]*(n+1)
DFS(n)
print(f'{a[n]}')
'Algorithm > Python' 카테고리의 다른 글
076 - 최대 부분 증가수열 (0) | 2023.10.18 |
---|---|
075 - 돌다리 건너기(Bottom-Up) (1) | 2023.10.14 |
073 - 동적계획법이란? 네트워크 선 자르기(Bottom-Up)/(Top-Down : 재귀, 메모이제이션) (0) | 2023.10.14 |
072 - 피자 배달 거리(삼성 SW역량평가 기출문제 : DFS활용) (1) | 2023.10.14 |
071 - 사다리 타기(DFS) (1) | 2023.10.06 |