이 문제는 기존에 DP를 사용하여 LIS를 얻어내던 것들 더 빠른 시간 내에 구해야 하는 문제이다. 기존의 LIS를 구하는 방법은 수열의 길이 만큼의 DP리스트를 만들고, 인덱스 0부터 N-1까지 i번째 숫자를 탐색해 나간다. DP를 이용한 LIS풀이도 처음에 애를 먹었던 기억이 있기에 이전의 코드를 보고 다시 생각해 보았다. DP 이용 N^2 (시간초과) N=int(input()) lst=list(map(int,input().split())) lis=[0 for _ in range(N)] lis[0]=1 if N>=2: for i in range(1,N): minTrue=1 #lst[i]의 값이 그 전값들중 최소인지 아닌지 판별 maxlis=0 #minTrue가 0일때, lis[i]는 이전 lis들중 ..