#include <stdio.h>
int is_min(int a, int b)
{
if (a <= b)
return (a);
else
return (b);
}
int main(void)
{
int n;
scanf("%d", &n);
int arr[1000001];
int i;
arr[0] = 0;
arr[1] = 0;
arr[2] = 1;
arr[3] = 1;
i = 4;
while (i <= n)
{
arr[i] = arr[i - 1] + 1;
if (i % 3 == 0)
arr[i] = is_min(arr[i], arr[i / 3] + 1);
if (i % 2 == 0)
arr[i] = is_min(arr[i], arr[i / 2] + 1);
i++;
}
printf("%d", arr[n]);
return (0);
}
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준 #2747] 피보나치 수 - C (0) | 2023.08.16 |
---|