문제 출처
1. 문제설명
- 정수
X
를 1로 만드는 최소한의 방법과 그 수를 출력하라
- 사용 가능한 연산
X
가 3으로 나누어 떨어지면 3으로 나눈다.
X
가 2로 나누어 떨어지면 2로 나눈다.
- 1을 뺀다.
2. 알고리즘 설계
- 시간 제한이 0.5초이므로, DP 외에 떠오른 방법이 없다.
- 1을 빼준 값으로 DP 배열을 초기화 시킨다.
- 기존 연산 수, 2로 나눴을 때의 연산 수, 3으로 나눴을 때 연산 수 중 작은 값으로 갱신
- 위치를 기억해야 하므로, 위치도 각 연산에 맞게 설정한다.
3. 전체 코드