도전과제 : 돌다리 건너기(Bottom-Up)
철수는 학교에 가는데 개울을 만났습니다. 개울은 N개의 돌로 다리를 만들어 놓았습니다. 철
수는 돌 다리를 건널 때 한 번에 한 칸 또는 두 칸씩 건너뛰면서 돌다리를 건널 수 있습니다.
철수가 개울을 건너는 방법은 몇 가지일까요?
▣ 입력설명
첫째 줄은 돌의 개수인 자연수 N(3≤N≤45)이 주어집니다.
▣ 출력설명
첫 번째 줄에 개울을 건너는 방법의 수를 출력합니다.
▣ 입력예제 1
7
▣ 출력예제 1
34
문제풀이
import sys
sys.stdin=open("input.txt", "r")
n = int(input())
dy=[0]*(n+2) #dy리스트의 0번 인덱스는 사용하지 않는다.
dy[1]=1
dy[2]=2
for i in range(3, n+2): #돌다리의 경우 땅에 도착해야하기 때문에 n+1까지 간다.
dy[i] =dy[i-1]+dy[i-2]
print(dy[n+1])
▶ 돌다리의 경우 땅에 도착해야 되기 때문에 n+1까지 for문을 사용한다.
'파이썬 알고리즘 > 동적계획법' 카테고리의 다른 글
6. 가장 높은 탑 쌓기(LIS 응용) (0) | 2022.11.23 |
---|---|
5. 최대 선 연결하기(LIS응용) -디버깅해보자 (0) | 2022.11.23 |
4. 최대 부분 증가수열(LIS: Longest Increasing Subsequence) (0) | 2022.11.23 |
2.네트워크 선 자르기(Top-Down방식) (0) | 2022.11.23 |
1. 네트워크 선 자르기(Bottom-Up) (0) | 2022.11.23 |