포럼
문제 R03331

1로 만들기

설명

정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 입니다.

  • X가 3으로 나누어 떨어지면, 3으로 나눈다.

  • X가 2로 나누어 떨어지면, 2로 나눈다.

  • 1을 뺀다.

정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 합니다. 연산을 사용하는 횟수의 최솟값을 출력하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다.

제한 사항
  • 1 ≤ N ≤ 1,000,000
제약
입력 형식

One integer \(N\) (\(1 \le N \le 10^6\)).

출력 형식

Print the minimum number of operations.

예제 1
입력
2
출력
1
예제 2
입력
10
출력
3
문제 정보

riseoj 작성

출처 Online Judge > GoldOJ

태그
#DP

평가 및 의견

Make It One

개요
출제자 난이도 Silver III 실버 III 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Make It One

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8