티스토리 뷰

1463번 1로 만들기


#include <iostream>

using namespace std;


int go(int n);

int d[1000001];

int main(void) {

int n;

cin >> n;

cout << go(n) << endl;

}


int go(int n) {

d[1] = 0;

int temp;

for (int i = 2; i <= n; i++) {

temp = d[i - 1] + 1;

if (i % 2 == 0 && temp > d[i / 2] + 1) {

temp = d[i / 2] + 1;

}

if (i % 3 == 0 && temp > d[i / 3] + 1) {

temp = d[i / 3] + 1;

}

d[i] = temp;

}

return d[n];

}

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함