오늘 이코테 교재가 도착했다. 이전에 구매했던 빅데이터 커리어가이드북과 함께 시간을 투자하여 읽어봐야할 것 같다. 그래서 상대적으로 문제풀이 수가 적다. 그래도 문제 푸는 것에 대한 습관이 들어야한다고 생각해서 조금이라도 풀이를 진행하기로 했다. 주말에 보충하여 더 풀어보도록 하겠다.
백준 11055번 가장 큰 증가 부분 수열
import sys
n = int(sys.stdin.readline())
array= list((map(int,(sys.stdin.readline().split()))))
dp = list(x for x in array)
dp[0] = array[0]
for i in range(1,n):
for j in range(i):
if array[j]<array[i]:
dp[i]=max(dp[i],dp[j]+array[i])
print(max(dp))
백준 11722번 가장 긴 감소하는 부분 수열
# 이전 가장 긴 증가하는 부분 수열과 유사
import sys
size = int(sys.stdin.readline())
A = list(map(int,sys.stdin.readline().split()))
dp = [0 for _ in range(size)]
for i in range(size):
for j in range(i):
if A[i]<A[j] and dp[i] < dp[j]:
dp[i] = dp[j]
dp[i] += 1
print(max(dp))