For Programmer
백준 11053번 파이썬 문제풀이(가장 긴 증가하는 부분 수열) - DP(탑다운) 본문
728x90
1. Top down 방식
import sys
sys.setrecursionlimit(100000)
N = int(input())
A = list(map(int, input().split())) + [0]
dp = [[-1 for _ in range(N + 1)] for _ in range(N + 1)]
def dfs(cur, pre):
if cur == N:
return 0
if dp[cur][pre] != - 1:
return dp[cur][pre]
if A[cur] > A[pre]:
ret = max(dfs(cur + 1, cur) + 1, dfs(cur + 1, pre))
else:
ret = dfs(cur + 1, pre)
dp[cur][pre] = ret
return dp[cur][pre]
print(dfs(0, -1))
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 1149번 파이썬 문제풀이(RGB거리) - DP(탑다운) (0) | 2022.04.07 |
---|---|
백준 12865번 파이썬 문제풀이(평범한 배낭) - DP(탑다운) (0) | 2022.04.06 |
백준 2579번 파이썬 문제풀이(계단 오르기) - DP (0) | 2022.04.05 |
백준 1637번 파이썬 문제풀이(날카로운 눈) - 이분탐색 (0) | 2022.04.01 |
백준 1300번 파이썬 문제풀이(K번째 수) - 이분탐색 (0) | 2022.03.31 |
Comments