코딩 일지/baekjoon

1463 - 1로 만들기

훈감자 2023. 2. 11. 03:01

재귀로 dp하니 TLE 나서 for문으로 구현하니 통과..

For문 연습해야겠다..

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
#define MAX_ 987654321

typedef long long int INT;
INT n;
int main()
{
    cin >> n;

    vector<INT> v;
    v.resize(n+1);
    v[1] = 0;
    for(INT i=2; i<=n; i++)
    {
        v[i] = MAX_;
        if(i%2==0)
        {
            v[i] = min(v[i], v[i/2]+1);
        }
        if(i%3==0)
        {
            v[i] = min(v[i], v[i/3]+1);
        }
        if(i-1>0)
        {
            v[i] = min(v[i], v[i-1]+1);
        }
    }

    cout << v[n];
}