Longest Increasing Subsequence1 최장 증가 부분수열: LIS (Longest Increasing Sub-sequence) LIS 길이는 꽤 단순하게 구할 수 있다. 10 20 10 30 20 50의 전체 수열이 있다면 먼저 10을 벡터에 넣는다 10 그 다음 수를 벡터의 마지막 수와 비교하여 1) 마지막 수보다 크다면 그대로 벡터에 삽입 10 20 2) 마지막 수보다 작거나 같다면 벡터에 있는 요소들 중 다음 수보다 크거나 같은 가장 작은 정수를 찾아 바꿔주면 된다. 10 20 (세번째 10과 첫번째 원래 들어있던 10을 바꾼것이다) 이 수를 찾을 때 lower_bound를 사용하면 편하지만 실력 향상을 위해 직접 이분탐색을 구현하여 써봐도 좋다. 끝까지 반복하면 10(2) 20(4) 30(3) 50(5) ()안에 수는 인덱스이다 의 결과를 얻을 수 있는데 이것은 부분 수열의 길이가 4라는 것이지 이 결과가 최장 증가 부분.. 2020. 6. 25. 이전 1 다음