-
[백준] 1로 만들기 - 1463백준 2020. 3. 16. 21:03반응형
dp관련 문제구요 접근 방식은 다른 문제와 크게 다르지 않습니다.
근데 제가 보기에도 코드가 별로 좋지 않네요...ㅠㅠ 방학때 놀지 말고 공부 좀 할 걸 그랬습니다
#include <iostream> #include <algorithm> using namespace std; //계산된 값을 저장할 배열 unsigned int cache[1000001]; int func(int para) { //함수에서 3,2로 나누거나 1을 뺐을 때 저장될 변수 int result[3]; fill_n(result, 3, 1234567); //기저 if (para == 1) { return 0; } else if (cache[para] != 0) { return cache[para]; } if (para % 3 == 0) { result[0] = para / 3; result[0] = func(result[0]); } else { result[0] = 1234567; } if (para % 2 == 0) { result[1] = para / 2; result[1] = func(result[1]); } else { result[1] = 1234567; } result[2] = para - 1; result[2] = func(result[2]); for (int i = 0; i < 3; i++) { } sort(result, result + 3); for (int i = 0; i < 3; i++) { } cache[para] = result[0] + 1; return cache[para]; } int main() { fill_n(cache, 1000001, 0); cache[1] = 0; unsigned int x; cin >> x; cout << func(x) << '\n'; return 0; }
반응형'백준' 카테고리의 다른 글
[백준] 큐2 - 18258 (0) 2020.07.25 부분 합 - 1806 (0) 2020.03.16 집합 - 11723 (0) 2020.03.06