https://www.acmicpc.net/problem/1354
티어: 골드 5
로직
수열 A의 모든 값을 구할 필요가 없으므로 탑다운 방식을 사용합니다.
수열 A는 dp 변수에 딕셔너리 형태로 저장하며, 초기값으로 A[0] = 1이 되도록 설정해줍니다.
수열 A의 i번째 값을 구하는 A(i)라는 함수를 만들어봅시다.
맨 처음, dp[i]값이 이미 저장되어 있는지 확인하고, 저장되어 있다면 그 값을 반환합니다.
A[i]에서 i가 0 이하의 값이라면 1이므로 i의 를 max(0, i)로 설정해줍니다.
A(i//p - x)와 A(i//q - y)의 값을 재귀적으로 구하고, 둘을 더한 값을 dp[i]에 저장하고 반환합니다.
구하고, 둘을 더한 값을 dp[i]에 저장하고 반환합니다.
'백준 & 알고리즘' 카테고리의 다른 글
Top-down DP와 Bottom-up DP의 차이점과 장단점, 쓰는 경우 (1) | 2023.06.23 |
---|---|
[파이썬] 백준 1111번 - IQ Test 풀이 (0) | 2023.06.23 |
[파이썬] 백준 1351번 - 무한 수열 풀이 (0) | 2023.06.23 |
[파이썬] 백준 3584번 - 가장 가까운 공통 조상 풀이 (0) | 2023.06.23 |
[파이썬] 백준 17633번 - 제곱수의 합 (More Huge) 풀이 (0) | 2023.06.11 |