태그:
14. 동적 계획법 1
CLASS 3
ESSENTIAL
주어진 정수에서 1을 빼거나 2로 나누거나 3으로 나누는 연산을 최소 몇 번 진행하여 1을 만들 수 있는지 구하는 문제입니다. memoization 기법을 사용하는 것인데, 사용한 연산의 횟수를 저장할 길이 N+1의 배열을 만들고 a[2]
와 a[3]
에 1을 집어넣습니다. 그리고 조건에 따라 4부터 N까지 연산 횟수를 구하여 채워넣고 a[N]
을 출력합니다.
소스 코드
언어 | 코드 | 시간 |
---|---|---|
Python 3 | 코드(Github) / 코드(백준) | 2020-03-31 21:12:06 |