티스토리 뷰

LIS(Longest Increasing Subsequence) 최장 증가 부분 수열


LIS의 기본적인 예를 들어보이자면,


8 2 9 1 4 11 6 7 5 10 의 수열이 주어졌을 때,


8 2 9 1 4 11 6 7 5 10    혹은

8 2 9 1 4 11 6 7 5 10 


를 나타내는 것이다.


1. 앞에서 부터, 순차적으로 수를 선택하여 나갈 때,

2. 수는 증가하여야 하며,

3. 그 선택되어진 숫자가 가장 많은 경우를 찾는 것이다.




01234567


위의 그림과 같은 순서로 lis배열에 값이 채워지게 된다.

최종적으로 최장 증가 부분 수열을 찾기 위해선, lis배열의 값들 중 가장 큰 값을 찾아주면 된다.


이 LIS를 사용하는 문제 중 하나인 

문제 : https://www.acmicpc.net/problem/2565


TEST CASE를 A전봇대 순서를 기준으로 정렬 후에 나열해 본다면, 8 2 9 1 4 6 7 10 이란 수열이 나오게 된다.

이 중 증가 수열의 집합에 속하지 않는 것을 제외시켜주면 답이 나오게 된다.




'알고리즘 > (깨짐)' 카테고리의 다른 글

BOJ)2504 괄호의 값 (다시보기)  (0) 2017.03.11
BOJ)1799 비숍 / 백트래킹  (0) 2017.03.08
BOJ)2579 계단 오르기 (다시보기)  (0) 2017.03.07
BOJ)2578 빙고  (0) 2017.03.05
BOJ)2591 숫자카드  (0) 2017.03.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함