무한 수열 A는 다음과 같다.
입력
첫째 줄에 3개의 정수 N, P, Q가 주어진다.
출력
첫째 줄에 AN을 출력한다.
제한
dictionary 자료구조를 이용하여 풀 수 있는 문제이다.
dfs(n)을 호출하여 AN을 구하는데,
함수 안에서 dict[i] = dfs(Math.floor(i/p)) + dfs(Math.floor(i/q)) 로 dict에 필요한 값들을 채우고 마지막에 dict[n]을 반환한다.
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const [n, p, q] = require("fs").readFileSync(filePath).toString().trim().split(" ").map(Number);
const dict = {}
dict[0] = 1
function dfs(i) {
if (i in dict) return dict[i];
return dict[i] = dfs(Math.floor(i/p)) + dfs(Math.floor(i/q));
}
console.log(dfs(n));