N

(Leet Code JS)Third Maximum Number 본문

Leet Code 알고리즘

(Leet Code JS)Third Maximum Number

naeunchan 2022. 5. 13. 13:38
728x90
반응형

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

 

Third Maximum Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

map을 활용.

nums에는 중복된 수가 있을 수 있기 때문에,

중복을 제거하기 위해 map을 선언한다.

 

그리고 nums를 순회하면서 map에 nums[i]에 해당하는 수가 없으면 nums[i]를 key로 하여 value를 true로 해준다.

순회가 끝나면 다음은 map을 순회한다.

for of 문으로 key와 value에 접근할 수 있다.

arr에 key를 넣어준 후, 내림차순으로 정렬한다.

 

리턴은 arr.length를 확인하여 3보다 작으면 가장 큰 값(arr[0])을, 3 이상이라면 2번 인덱스에 해당하는 수를 리턴한다.

var thirdMax = function(nums) {
    const map = new Map();
    const arr = [];
    
    for(let i = 0; i < nums.length; i++){
        if(!map.get(nums[i])){
            map.set(nums[i], true);
        }
    }
    
    for(const [k, _] of map){
        arr.push(k);
    }
    
    arr.sort((a, b) => b - a);
    
    return arr.length < 3 ? arr[0] : arr[2];
};
728x90
반응형