Skip to content

Commit

Permalink
add solution : 128. Longest Consecutive Sequence
Browse files Browse the repository at this point in the history
  • Loading branch information
mmyeon committed Dec 12, 2024
1 parent 920f503 commit 24faa7d
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions longest-common-subsequence/mmyeon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/**
*
* ์ ‘๊ทผ ๋ฐฉ๋ฒ• :
* - ์ค‘๋ณต ์ˆซ์ž ์ œ๊ฑฐํ•œ ๋’ค, ์ˆซ์ž ์ˆœํšŒํ•˜๋ฉด์„œ ์—ฐ์† ์ˆซ์ž์˜ ์‹œ์ž‘ ์ง€์ ์ธ์ง€ ์ฒดํฌ
* - ๋” ์ž‘์€ ์ˆซ์ž๊ฐ€ ์—†์œผ๋ฉด ํ˜„์žฌ ์ˆซ์ž๊ฐ€ ์—ฐ์† ์ˆซ์ž์˜ ์‹œ์ž‘ ์ง€์ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์—ฐ์†๋œ ๋‹ค์Œ ํฐ ์ˆซ์ž๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์ฒดํฌ
* - ์žˆ์œผ๋ฉด count ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ๊ทธ ๋‹ค์Œ ์ˆซ์ž ์žˆ๋Š”์ง€ ๋ฐ˜๋ณตํ•ด์„œ ์ฒดํฌ
* - ์—ฐ์† ์ˆซ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ์ˆœํšŒํ•˜๊ธฐ
* - count๊ฐ€ maxCount๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ maxCount๊ฐ’์„ count ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ
*
* ์‹œ๊ฐ„๋ณต์žก๋„ :
* - ์ˆซ์ž ๋ฐฐ์—ด ๊ธธ์ด๋ฅผ ๋ชจ๋‘ ์ˆœํšŒํ•˜๋‹ˆ๊นŒ O(n)
*
* ๊ณต๊ฐ„๋ณต์žก๋„ :
* - Set์„ ์‚ฌ์šฉํ•ด์„œ ์ˆซ์ž ์ค‘๋ณต ์ œ๊ฑฐํ•˜๊ณ  ์ €์žฅํ•˜๋‹ˆ๊นŒ O(n)
*/

/**
* @param {number[]} nums
* @return {number}
*/
var longestConsecutive = function (nums) {
// ๋ฐฐ์—ด ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ
if (nums.length === 0) return 0;

const uniqueNums = new Set(nums);
let maxCount = 1;

for (const num of uniqueNums) {
// ์—ฐ์†๋œ ์ˆซ์ž์˜ ์‹œ์ž‘ ์ง€์ ์ธ์ง€ ์ฒดํฌ(๋” ์ž‘์€ ์ˆซ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„์•ผ ํ•จ)
if (!uniqueNums.has(num - 1)) {
let next = num + 1;
let count = 1;

// ์—ฐ์† ์ˆซ์ž๊ฐ€ ๋” ์กด์žฌํ•˜๋Š”์ง€ ์ฒดํฌ
while (uniqueNums.has(next)) {
next++;
count++;
}

// ๊ธฐ์กด maxCount๋ณด๋‹ค ํฌ๋ฉด, count ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ
if (maxCount < count) maxCount = count;
}
}

return maxCount;
};

0 comments on commit 24faa7d

Please sign in to comment.