๐ ๊ณต๋ถ/์๊ณ ๋ฆฌ์ฆ
LIS
LIS LIS; Longest Increasing Subsequence ์ต์ฅ ์ฆ๊ฐ ๋ถ๋ถ ์์ด original array์ ์ผ๋ถ ์์๋ฅผ ๊ณจ๋ผ๋ด์ ๋ง๋ ๋ถ๋ถ ์์ด ์ค, ๊ฐ ์์๊ฐ ์ด์ ์์๋ณด๋ค ํฌ๋ค๋ ์กฐ๊ฑด์ ๋ง์กฑํ๊ณ , ๊ทธ ๊ธธ์ด๊ฐ ์ต๋์ธ ๋ถ๋ถ ์์ด LIS ๊ธธ์ด ๊ตฌํ๊ธฐ 1. DP - O(N^2) length๋ฅผ ์๋์ ๊ฐ์ด ์ ์ํ ๋, DP๋ฅผ ํ์ฉํ์ฌ LIS์ ๊ธธ์ด๋ฅผ ๊ตฌํ ์ ์๋ค. length[i]: i๋ฒ์งธ ์ธ๋ฑ์ค์์ ๋๋๋ ์ต์ฅ ์ฆ๊ฐ ๋ถ๋ถ ์์ด์ ๊ธธ์ด ์ด๋ length.size == array.size ์ด๋ค. for (i in array.indices) { length[i] = 1 for (j in 0 until i) { if (array[j] < array[i]) length[i] = max(length[i..