( 접근하다 )
이것은 동적 프로그래밍이므로 재귀 공식을 찾아야 합니다.
과거 스탯으로 규칙성을 만들어야 하는데, 조금 어려운 것 같다.
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 과정에서도 분기를 구현해야 했습니다. 동적 프로그래밍 재귀를 공식화하는 것은 확실히 미성숙한 것 같습니다. 끊임없는 반복과 연습이 필요합니다.