[JavaScript/section 10] 03 - ์ตœ๋Œ€ ๋ถ€๋ถ„ ์ฆ๊ฐ€ ์ˆ˜์—ด
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ์ตœ๋Œ€ ๋ถ€๋ถ„ ์ฆ๊ฐ€์ˆ˜์—ด(LIS) N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ์ค‘์—์„œ ๊ฐ€์žฅ ๊ธธ๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”(์ž‘์€ ์ˆ˜์—์„œ ํฐ ์ˆ˜๋กœ) ์›์†Œ๋“ค์˜ ์ง‘ํ•ฉ์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›์†Œ๊ฐ€ 2, 7, 5, 8, 6, 4, 7, 12, 3์ด๋ฉด ๊ฐ€์žฅ ๊ธธ๊ฒŒ ์ฆ๊ฐ€ํ•˜๋„๋ก ์›์†Œ๋“ค์„ ์ฐจ๋ก€๋Œ€๋กœ ๋ฝ‘์•„๋‚ด๋ฉด 2, 5, 6, 7, 12๋ฅผ ๋ฝ‘์•„๋‚ด์–ด ๊ธธ์ด๊ฐ€ 5์ธ ์ตœ๋Œ€ ๋ถ€๋ถ„ ์ฆ๊ฐ€ ์ˆ˜์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ์„ค๋ช… ์ฒซ์งธ ์ค„์€ ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆ˜ N(1= 0; j--) { if (arr[j] < arr[i] && max < dy[j]) { max = dy[j]; } } dy[i] = max + 1; } answer = Math.max(...dy); return answer; } let arr = [2, 7, 5, 8, 6, 4, 7, 12,..
_์„ฑํ˜ธ_
'LIS' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก