๐Ÿ”’Algorithm

LeetCode [JS] > Third Maximum Number

devWarrior 2025. 3. 26. 23:53

โœ…๋ฌธ์ œ

https://leetcode.com/problems/third-maximum-number/description/

โœ…ํ’€์ด

Set์œผ๋กœ ์ค‘๋ณต์ œ๊ฑฐํ•˜๊ณ  ์‹œ์ž‘ํ•˜๋ฉด ํŽธํ•˜๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(NlogN) ์œผ๋กœ ์ด๋Ÿฐ ์ด์œ ๋Š” js sorting algorithm ์ด tim sort ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฐธ๊ณ ๋กœ tim sort ๋ฐฉ์‹์€ merge sort ์™€ insertion sort๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋งŒ๋“  sorting ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด https://d2.naver.com/helloworld/0315536 ๋ฅผ ๋ณด๋ฉด ๋œ๋‹ค.

/**
 * @param {number[]} nums
 * @return {number}
 */
var thirdMax = function (nums) {
    const sorted = [...new Set(nums)].sort((prev, next) => next - prev);

    let answer = undefined;
    for (let i = 0; i < 3; ++i) {
        const num = sorted[i];
        if (num === undefined) {
            return sorted[0];
        }

        answer = num;
    }

    return answer;
};