백준 온라인 저지, 자료구조 / 1351번: 무한수열 (파이썬 / , 백준 골드문제)
2021. 11. 29. 18:03ㆍ알고리즘/자료구조
728x90
반응형
문제
무한 수열 A는 다음과 같다.
- A0 = 1
- Ai = A⌊i/P⌋ + A⌊i/Q⌋ (i ≥ 1)
N, P와 Q가 주어질 때, AN을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 3개의 정수 N, P, Q가 주어진다.
출력
첫째 줄에 AN을 출력한다.
제한
- 0 ≤ N ≤ 1012
- 2 ≤ P, Q ≤ 109
예제 입력 1
7 2 3
예제 출력 1
7
예제 입력 2
0 2 3
예제 출력 2
1
예제 입력 3
10000000 3 3
예제 출력 3
32768
예제 입력 4
256 2 4
예제 출력 4
89
예제 입력 5
1 1000000 1000000
예제 출력 5
2
힌트
⌊x⌋는 x를 넘지 않는 가장 큰 정수이다.
접근 방법
- 딕셔너리를 활용해 트리구조를 구현하여 다이나믹프로그래밍을 동작시켜 An을 구한다.
코드
# https://www.acmicpc.net/problem/1351
# 접근방법
# 딕셔너리를 활용해 트리구조를 구현하여 다이나믹프로그래밍을 동작시켜 An을 구한다.
def dfs(x):
if x in idx:
return tree[x]
value = dfs(x//p) + dfs(x//q)
tree[x] = value
idx.add(x)
return value
n, p, q = map(int, input().split())
tree = {}
tree[0] = 1
idx = set()
idx.add(0)
print(dfs(n))
728x90
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
백준 온라인 저지, 자료구조 / 12018번: YonseiTOTO (파이썬 / , 백준 브론즈문제) (0) | 2021.12.01 |
---|---|
백준 온라인 저지, 자료구조 / 1991번: 트리순회 (파이썬 / , 백준 브론즈문제) (0) | 2021.11.29 |
백준 온라인 저지, 자료구조 / 17162번: 가희의수열놀이 (파이썬 / , 백준 골드문제) (0) | 2021.11.27 |
백준 온라인 저지, 자료구조 / 1379번: 강의실2 (파이썬 / , 백준 골드문제) (0) | 2021.11.27 |
백준 온라인 저지, 자료구조 / 17178번: 줄서기 (파이썬 / 백준 골드문제) (0) | 2021.11.24 |