이세개발

01 당장 좋은 것만 선택하는 그리디

02 아이디어를 코드로 바꾸는 구현

03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS

04 기준에 따라 데이터를 정렬

05 범위를 반씩 좁혀가는 탐색

06 다이나믹 프로그래밍

07 가장 빠른 길 찾기

08 다양한 그래프 알고리즘

 

[문제]

정수 x가 주어질 때 정수 x에 사용할 수 있는 연산은 다음과 같이 4가지이다.

  1. x가 5로 나누어 떨어지면, 5로 나눈다.
  2. x가 3으로 나누어 떨어지면, 3으로 나눈다.
  3. x가 2로 나누어 떨어지면, 2로 나눈다.
  4. x에서 1을 뺀다.

정수 x가 주어졌을 때, 연산 4개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 구하시오.

예를 들어 정수가 26이면 다음과 같이 계산해서 3번의 연산이 최솟값이다.

  1. 26 - 1 = 25
  2. 25 / 5 = 5
  3. 5 / 5 = 1

[입력 조건]

  • 첫째 줄에 정수 x가 주어진다. (1 ≤ x ≤ 30,000)

[출력 조건]

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

입력예시

26

출력예시

3
profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!