반응형
백준 11053번 가장 긴 증가하는 부분 수열
파이썬 풀이
동적 프로그래밍을 활용한 풀이입니다.
import sys
import collections
input = sys.stdin.readline
N = int(input()) # 수열 크기
dp = collections.defaultdict(int) # 데이터 저장
stack = []
arr = list(map(int, input().split())) # 수열 정보 얻기
for i in range(N): # dp 1로 초기화
dp[i] = 1
# arr 탐색
for i in range(N):
for j in range(i):
if arr[i] > arr[j]:
dp[i] = max(dp[i], dp[j]+1) # dp 갱신
print(max(dp.values()))
출처
아래 게시글에 LIS가 잘 정리되어 있습니다!
반응형
'Python > 백준' 카테고리의 다른 글
[백준 파이썬] 2751번 수 정렬하기 2 (0) | 2021.04.29 |
---|---|
[파이썬 백준] 2750번 수 정렬하기 (0) | 2021.04.29 |
[백준 파이썬] 2747번 피보나치 수 (0) | 2021.04.26 |
[백준 파이썬] 1197번 최소 스패닝 트리 (0) | 2021.04.25 |
[백준 파이썬] 1647번 도시 분할 계획 (0) | 2021.04.24 |