정수 배열 번호가 지정되면 이 배열에서
세 번째 고유한 최대 숫자를 반환한다.
세 번째 최대값이 존재하지 않으면 최대값을 반환한다.
문제 접근
배열의 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];
}
};
'Algorithm' 카테고리의 다른 글
Leetcode 482. License Key Formatting (0) | 2023.03.20 |
---|---|
Leetcode 461. Hamming Distance (0) | 2023.03.17 |
Leetcode 409. Longest Palindrome (0) | 2023.03.08 |
Leetcode 389. Find the Difference (0) | 2023.03.03 |
LeetCode 387. First Unique Character in a String (0) | 2023.03.02 |