n = int(input()) dp = [0]*3000003 for i in range(1,n+1): if dp[i+1] == 0: dp[i+1] = dp[i] + 1 else: dp[i+1] = min(dp[i+1], dp[i]+1) if dp[i*2] == 0: dp[i*2] = dp[i] + 1 else: dp[i*2] = min(dp[i*2], dp[i]+1) if dp[i*3] == 0: dp[i*3] = dp[i] + 1 else: dp[i*3] = min(dp[i*3],dp[i]+1) print(dp[n]) 이번 문제는 입력받은 N을 '2로 나누기', '3으로 나누기', '1 빼기' 이 세가지 연산을 가지고 1을 만들 수 있는 최소 연산횟수를 구하는 문제였다. 처음에는 입력받은 N 값에서부터..