๐ŸŽ’ ๊ณต๋ถ€/์•Œ๊ณ ๋ฆฌ์ฆ˜

๐ŸŽ’ ๊ณต๋ถ€/์•Œ๊ณ ๋ฆฌ์ฆ˜

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..

dev_sia
'๐ŸŽ’ ๊ณต๋ถ€/์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก