Ch8.다이나믹 프로그래밍 – 바닥


( 접근하다 )

이것은 동적 프로그래밍이므로 재귀 공식을 찾아야 합니다.

과거 스탯으로 규칙성을 만들어야 하는데, 조금 어려운 것 같다.

1 > 1인 경우

2 > 3인 경우

If 3 > 이전 x 2 – 1 >> () (~~) and (~~) () 이런 경우 때문에 이전 x가 2인 것 같은데……. m 빼기 1 .

설명을 보고 내가 생각한 원리에 따라 코드를 작성해보고 정답이 맞는지 비교해보자.

(작성된 코드)

n = int(input())

floor = (0)*n

floor(0) = 1
floor(1) = 3

for i in range(2,n):
    floor(i) = floor(i-1)*2 -1

print("my answer : ",floor(n-1))


for i in range(2,n):
    floor(i) = floor(i-1)+2*floor(i-2)

print("answer : ",floor(n-1))

입구: 3
내 대답: 5
답변: 5

입력: 10
내 대답: 513
답: 683

(올바른 응답 코드와 비교)

3까지는 정답이 같았지만 4부터는 달라지기 시작했습니다. 이전 i-1 과정에서 앞뒤로 블록을 추가하는 것을 생각하고 있었는데 댓글을 읽고 i-2 과정에서도 분기를 구현해야 했습니다. 동적 프로그래밍 재귀를 공식화하는 것은 확실히 미성숙한 것 같습니다. 끊임없는 반복과 연습이 필요합니다.