(파이썬) Baekjoon Online Judge 백준 2579 계단 오르기
문제
풀이
- 세번 연속 한계단씩 오를 수 없다
- 마지막 계단을 밟는다
i번째 계단을 밟았을 경우, i-2
계단을 밟고, 2계단 올라온 경우가 있을 수 있고,
i-3
계단을 밟고, 2계단을 올라와(i-2계단을 건너 뛰고) i-1
계단을 밟고, i계단을 밟는 경우가 있다.
코드
파이썬 (python)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
n = int(input()) stair = [] for i in range(n): stair.append(int(input())) sum = [] sum.append(stair[0]) sum.append(stair[1]+stair[0]) sum.append(max(stair[2]+stair[0], stair[2]+stair[1])) # 점화식을 위한 초기 3개값 for i in range(3, n): sum.append(max(stair[i]+sum[i-2], stair[i]+stair[i-1]+sum[i-3])) print(sum[n-1]) |