제 생각이지만, LIS 업데이트에서 O(n),
그리고 DFS에서 최선의 경우 O(n), 최악의 경우 O(n2)일 것 같습니다.
작성자님은 어떻게 테스트하셨는지 여쭤볼 수 있을까요?
17216번 - 가장 큰 감소 부분 수열
DP 에 값이 얼마가 캐시되었는지 기준으로 확인해봤습니다.
그냥 숫자 아무거나 넣어봤는데 갯수가, DP(Len(LIS)-1) = 1, DP(Len(LIS)-2) = 2, ... DP(0) = Len(LIS) 더라구요 => O(Len(LIS)^2)
그런데
7
10 2 20 2 1 40 20
요런경우는 Len(LIS) = 3 인데 DP(2) = 1, DP(1) = 2, DP(0) = 4 이렇게 나옵니다.
그냥 O(N^2) 으로 쌩으로 DP 돌리는거 보단 괜찮을거같기도 하고 DFS 잘못되면 아닌거같기도 하고...
참어렵네요.
댓글을 작성하려면 로그인해야 합니다.
dh0450 2년 전
테스트 몇개 해보니까
1, 2, 3, 4 ... Len(LIS)
이렇게 나오는데 왜그런지 모르겠네요.