12852번: 1로 만들기 2 www.acmicpc.net 이 문제는 주어진 자연수를 3으로 나누거나, 2로 나누거나, 1을 빼서 가장 적은 연산으로 1을 만들려고 할 때 연산의 최소 횟수와 연산 과정을 구해야 하는 문제이다. 만약 연산 최소 횟수만 구한다고 하면 dynamic programming을 이용해 1부터 N까지 차례대로 위 문제를 풀면서 접근하면 되지만 연산 과정도 구해야 하기 때문에 이를 저장할 배열을 하나 더 추가한다. 그래서 dynamic programming을 구현할 때는 우선 길이가 N+1인 배열 dp와 record를 만들고 배열의 인덱스에 대해 1부터 N까지 순회하면서, dp[i]를 dp[i-1], dp[i//2] (i가 2로 나누어 떨어질 때), dp[i//3] (i가 3으로 나누..