Algorithm(알고리즘)/백준
07. 계단오르는 경우의 수 구하기
반응형
07. 계단오르는 경우의 수 구하기
정해진 계단을 1칸, 2칸 선택해서 오를 수 있다.
끝까지 오르는 경우의 수를 구하라.
(0칸은 1 가지 경우라고 하자)
계단 4칸
1111
112
121
211
22
총 5가지 경우
풀이 1)
fib_cache={}
def staircase(n):
if n<2:
return 1
if n in fib_cache:
return fib_cache[n]
else:
temp=staircase(n-1) + staircase(n-2)
fib_cache[n] = temp
return temp
# 테스트
print(staircase(0))
print(staircase(6))
print(staircase(15))
print(staircase(25))
print(staircase(41))
# 결과
1
13
987
121393
267914296
풀이 2)
def staircase(n):
a, b = 1, 1
for i in range(n):
a, b = b, a + b
return a
# 테스트
print(staircase(0))
print(staircase(6))
print(staircase(15))
print(staircase(25))
print(staircase(41))
# 결과
1
13
987
121393
267914296
반응형
'Algorithm(알고리즘) > 백준' 카테고리의 다른 글
02_백준 2588 파이썬 곱셈 (0) | 2021.06.17 |
---|---|
01_ 백준 10869 파이썬 사칙연산 (0) | 2021.06.17 |
06. 주식 최대 수익 함수 (0) | 2021.05.22 |
05. 투자의 귀재, 합 구간이 가장 큰 함수 (0) | 2021.05.22 |
04. 첫번째로 중복되는 항목 찾기 1 (0) | 2021.05.22 |
댓글