https://www.acmicpc.net/problem/1463
import sys
input = sys.stdin.readline
printf = print
dp = [0] * 1000001
dp[0] = 0
dp[1] = 0
dp[2] = 1
dp[3] = 1
for i in range(4, 1000001):
dp[i] = dp[i - 1] + 1
if(i % 3 == 0):
dp[i] = min(dp[i], dp[i // 3] + 1)
if(i % 2 == 0):
dp[i] = min(dp[i], dp[i // 2] + 1)
target = int(input())
printf(dp[target])
'문제풀이' 카테고리의 다른 글
malloc LAB #2 : Implicit Free List (1) | 2025.04.28 |
---|---|
CLRS로 레드 블랙 트리 논하기 #1 : 이론 (0) | 2025.04.18 |
[PY] 9491 : 파도반 수열 (0) | 2025.04.17 |
C언어로 이진 트리 논하기 (0) | 2025.04.16 |
C언어로 이분 탐색 트리 구현하기 (0) | 2025.04.14 |