문제 링크
https://www.acmicpc.net/problem/1351
문제 풀이
def dfs(n):
if n in dict:
return dict[n]
else:
dict[n] = dfs(n // p) + dfs(n // q)
return dict[n]
n, p, q = map(int, input().split())
dict = {}
dict[0] = 1
print(dfs(n))
딕셔너리를 활용하니 너무 간단하게 풀리는 문제였습니다.
n이 딕셔너리 내에 키로 존재하지 않을 경우 재귀를 돌려 dict의 value를 채워나가며
key가 n인 value를 구하면 결과를 도출할 수 있습니다.
'Algorithm > BOJ' 카테고리의 다른 글
[백준] 11808 스티커 붙이기 (파이썬 python) (0) | 2024.03.28 |
---|---|
[백준] 11559 Puyo Puyo (파이썬 python) (0) | 2024.03.28 |
[백준] 2457 공주님의 정원 (파이썬 python) (0) | 2024.03.19 |
[백준] 2230 수 고르기 (파이썬 python) (0) | 2024.03.16 |
[백준] 11659 구간 합 구하기 4 (파이썬 python) (2) | 2024.03.15 |