File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed
longest-common-subsequence Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ *
3+ * ์ ๊ทผ ๋ฐฉ๋ฒ :
4+ * - ์ค๋ณต ์ซ์ ์ ๊ฑฐํ ๋ค, ์ซ์ ์ํํ๋ฉด์ ์ฐ์ ์ซ์์ ์์ ์ง์ ์ธ์ง ์ฒดํฌ
5+ * - ๋ ์์ ์ซ์๊ฐ ์์ผ๋ฉด ํ์ฌ ์ซ์๊ฐ ์ฐ์ ์ซ์์ ์์ ์ง์ ์ด๊ธฐ ๋๋ฌธ์, ์ฐ์๋ ๋ค์ ํฐ ์ซ์๊ฐ ์กด์ฌํ๋์ง ์ฒดํฌ
6+ * - ์์ผ๋ฉด count ์ฆ๊ฐ์ํค๊ณ , ๊ทธ ๋ค์ ์ซ์ ์๋์ง ๋ฐ๋ณตํด์ ์ฒดํฌ
7+ * - ์ฐ์ ์ซ์๊ฐ ์กด์ฌํ์ง ์์ ๋๊น์ง ์ํํ๊ธฐ
8+ * - count๊ฐ maxCount๋ณด๋ค ํฐ ๊ฒฝ์ฐ maxCount๊ฐ์ count ๊ฐ์ผ๋ก ์
๋ฐ์ดํธ
9+ *
10+ * ์๊ฐ๋ณต์ก๋ :
11+ * - ์ซ์ ๋ฐฐ์ด ๊ธธ์ด๋ฅผ ๋ชจ๋ ์ํํ๋๊น O(n)
12+ *
13+ * ๊ณต๊ฐ๋ณต์ก๋ :
14+ * - Set์ ์ฌ์ฉํด์ ์ซ์ ์ค๋ณต ์ ๊ฑฐํ๊ณ ์ ์ฅํ๋๊น O(n)
15+ */
16+
17+ /**
18+ * @param {number[] } nums
19+ * @return {number }
20+ */
21+ var longestConsecutive = function ( nums ) {
22+ // ๋ฐฐ์ด ๋น์ด์๋ ๊ฒฝ์ฐ ์ฒ๋ฆฌ
23+ if ( nums . length === 0 ) return 0 ;
24+
25+ const uniqueNums = new Set ( nums ) ;
26+ let maxCount = 1 ;
27+
28+ for ( const num of uniqueNums ) {
29+ // ์ฐ์๋ ์ซ์์ ์์ ์ง์ ์ธ์ง ์ฒดํฌ(๋ ์์ ์ซ์๊ฐ ์กด์ฌํ์ง ์์์ผ ํจ)
30+ if ( ! uniqueNums . has ( num - 1 ) ) {
31+ let next = num + 1 ;
32+ let count = 1 ;
33+
34+ // ์ฐ์ ์ซ์๊ฐ ๋ ์กด์ฌํ๋์ง ์ฒดํฌ
35+ while ( uniqueNums . has ( next ) ) {
36+ next ++ ;
37+ count ++ ;
38+ }
39+
40+ // ๊ธฐ์กด maxCount๋ณด๋ค ํฌ๋ฉด, count ๊ฐ์ผ๋ก ์
๋ฐ์ดํธํ๊ธฐ
41+ if ( maxCount < count ) maxCount = count ;
42+ }
43+ }
44+
45+ return maxCount ;
46+ } ;
You canโt perform that action at this time.
0 commit comments