Skip to content

Commit 24faa7d

Browse files
committed
add solution : 128. Longest Consecutive Sequence
1 parent 920f503 commit 24faa7d

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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+
};

0 commit comments

Comments
ย (0)