재귀로 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];
}

'코딩 일지 > baekjoon' 카테고리의 다른 글

1655 가운데를 말해요  (0) 2023.08.22
12865 - 평범한 배낭  (0) 2023.08.17
2839 설탕 배달  (0) 2023.02.11
4676 셀프넘버  (0) 2023.02.11
1010-다리놓기(dp를 활용한 combination 구현)  (0) 2023.01.24

+ Recent posts