🟦/백준

[실버 3] 1로 만들기

진뚱이용 2023. 5. 23. 20:34

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

 

1463번: 1로 만들기

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.

www.acmicpc.net

지금 풀이:

dfs로 완전 탐색 -> 시간 초과

* 구하고 있는 답보다 큰 경우는 빼는 스킬로 시간초과 피함

 

옛날 풀이:

dp [i] : i 숫자에 도달할 수 있는 최소 연산 개수

dp [i] = Math.min(dp [i-1] , dp [i/3] , dp [i/2] ) + 1

 

2 ~ N까지 전부 구한다