python/알고리즘 문제풀이

[백준 | 파이썬3] 9184 신나는 함수실행- 동적계획법

빛날희- 2021. 7. 16. 14:47

https://www.acmicpc.net/problem/9184

 

9184번: 신나는 함수 실행

입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다.

www.acmicpc.net

 

> 동적계획법

이미 계산된 적이 있는 값들은 dp리스트에서 빼와 사용하고 계산된 적이 없는 값들만 재귀함수를 호출하여 계산하도록 한다. 

a 또는 b또는 c가 0이하이면 바로 1을 돌려주고 20초과면 dp에서 20,20,20위치에 있는 값을 가져오면 되기 때문에 funny함수의 매개변수를 20,20,20으로 두고 실행한다. 

실제로 계산을 통해 dp값을 구해놓아야 하는 범위는 1에서 20 사이의 값들 이기 때문에 dp는 21x21x21배열로 초기화하였다.