๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐“ก๐“ธ๐“ธ๐“ถ๐Ÿฃ: ๐’œ๐“๐‘”๐‘œ๐“‡๐’พ๐“‰๐’ฝ๐“‚/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด

BOJ1463 : 1๋กœ ๋งŒ๋“ค๊ธฐ (Silver 3)

#include <iostream>
#include <stdlib.h>

using namespace std;

long long getMin(long long a, long long b, long long c)
{
    long long min = a;
    if (b < min)
        min = b;
    if (c < min)
        min = c;
    return min;
}

long long makeFunction(long long N)
{
    long long array[1000000] = {
        0,
    };
    long long a, b, c;
    array[1] = 0;
    for (long long i = 2; i <= N; i++)
    {

        long long a = 100000, b = 100000, c = 100000;
        if (i % 3 == 0)
        {
            a = array[i / 3] + 1;
        }
        if (i % 2 == 0)

            b = array[i / 2] + 1;

        c = array[i - 1] + 1;

        array[i] = getMin(a, b, c);
      //  cout << i << ": " << array[i] << "\n";
    }
    return array[N];
}

int main()
{
    ios_base ::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    long long N;
    scanf("%lld", &N);
    cout << makeFunction(N);
}