티스토리 뷰

알고리즘/백준(BOJ)

백준 - 1351 무한 수열

시나모온 2020. 8. 21. 15:43

문제 링크입니다 : https://www.acmicpc.net/problem/1351

 

1351번: 무한 수열

첫째 줄에 3개의 정수 N, P, Q가 주어진다.

www.acmicpc.net

 

map을 이용한 동적 계획법 문제이다.

그냥 동적 계획법을 사용하면 N으로 10의 12승만큼 잡아야 하기 때문에 메모리도 안되고 시간초과도 날 것이다.

 

 

 

 

#include <iostream>
#include <map>

using namespace std;
typedef long long ll;

int P, Q;
map<ll, ll> m;

ll getValue(ll N) {
    if(N == 0) return 1;
    if(m[N] != 0) return m[N];


    m[N] = getValue(N / P) + getValue(N / Q);
    return m[N];
}


int main() {
    ll N;
    cin >> N >> P >> Q;


    cout << getValue(N);

    return 0;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

'알고리즘 > 백준(BOJ)' 카테고리의 다른 글

백준 - 2075 N번째 큰 수  (0) 2020.08.21
백준 - 1715 카드 정렬하기  (0) 2020.08.21
백준 - 1269 대칭 차집합  (0) 2020.08.21
백준 - 16437 양 구출 작전  (0) 2020.08.20
백준 - 1068 트리  (0) 2020.08.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   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
글 보관함