반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

바닥 공사 본문

반응형

다이나믹 프로그래밍은 종종 결과가 너무 클 수 있어서 어떤 수로 나눠서 출력하라고 한다.

 

풀이법

-N이 3일 때의 예시

1. N이 3이고, i-1번째 즉, 2번 칸까지 채워져 있으면 경우에 수는 1개이다.

2. i-2번째 즉, 1번 칸까지 채워져 있으면 경우의 수는 2가지이다.

 

-점화식

따라서 점화식은 이렇게 구할 수 있다.

 

풀이

n = int(input())

d = [0] * 1001
d[1] = 1
d[2] = 3

for i in range(3, n + 1):
    d[i] = (d[i-1] + d[i-2] * 2) % 796796

print(d[n])

점화식에 맞게 코딩을 했다. 이 문제의 풀이도 처음엔 생각하지 못했다. 다이나믹 프로그램을 코딩하면 쉽지만 점화식 같은 풀이를 생각하는 것이 어렵다. 앞으로 더 많은 연습을 해야겠다.

반응형

'코딩 테스트(Python) > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글

최단 경로, 다익스트라  (0) 2022.06.30
효율적인 화폐 구성  (0) 2022.06.23
개미 전사  (0) 2022.06.21
1로 만들기  (0) 2022.06.21
다이나믹 프로그래밍  (0) 2022.06.20
Comments