Algorithm

Leetcode 414. Third Maximum Number

KANG_G1 2023. 3. 9. 09:56

정수 배열 번호가 지정되면 이 배열에서

세 번째 고유한 최대 숫자를 반환한다.

세 번째 최대값이 존재하지 않으면 최대값을 반환한다.


문제 접근

배열의 length에 따라 return값이 달라진다는 의미였다.

예제를 봤을 때 배열 내 중복되는 수가 있으므로

Set을 활용해 중복을 제거하였고

 

배열에서 세 번째 최대값이라는 키워드가 있어

sort를 통한 정렬로 값을 추려내고자 했다.

 

처음엔 오름차순으로 코드를 전개했으나

idx 처리가 까다로워 내림차순으로 변경해 코드를 전개했다.

/**
 * @param {number[]} nums
 * @return {number}
 */
var thirdMax = function(nums) {
    const sort = nums.sort((a,b)=> b-a);
    const set = new Set(sort);
    const spread = [...set];
    
    if(spread.length <= 2) {
         return Math.max(...spread);
    } else if(spread.length === 3){
         return Math.min(...spread);
    } else {
        return spread[2];
    }
};