728x90
1. 박스의 크기가 담겨져 있는 배열인 arr 배열, dp 정보가 담겨져 있는 dp 배열을 분리하자.
2. 반복문에서 index i에 해당하는 박스 = arr[i] 보다 이전에 있는 값이 작은 경우 중에서 dp값의 max 값 + 1 한 것이 현재 i의 dp 값이다.
3. 모든 반복문이 끝난 후 dp에서 최댓값을 출력하면 종료
import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int,input().split()))
dp = [1]
maxi = 0
for i in range(1,n): #i = 1, j = 0 // i = 2, j = 0,1
for j in range(i):
if arr[i] > arr[j]:
maxi = max(maxi, dp[j])
dp.append(maxi+1)
maxi = 0
print(max(dp))
728x90
'백준 풀이' 카테고리의 다른 글
[백준/BOJ] - 1303번 python 풀이 - dfs (0) | 2023.03.13 |
---|---|
[백준/BOJ] - 9465번 python 풀이 - dp (0) | 2023.03.10 |
[백준/BOJ] - 8394번 python 풀이 - dp (0) | 2023.03.08 |
[백준/BOJ] - 1325번 python 풀이 - DFS (0) | 2023.03.06 |
[백준/BOJ] - 2668번 python 풀이 - DFS (0) | 2023.03.05 |