
😎풀이
empty
: 값과 인덱스가 최하 값인 객체
first
: 가장 큰 값과 인덱스를 갖는 객체
second
: 두 번째로 큰 값과 인덱스를 갖는 객체
nums
순회
4-1. first
보다 큰 수가 있는 경우, 기존 값을 second
로 위임하고 해당 값을 first
에 입력
4-2. first
보다 작지만, second
보다 큰 값이 있는 경우 second
갱신
second
의 값에 2배보다 first
의 값이 큰 경우에만 first
의 인덱스 반환, 그렇지 못하면 -1
반환
function dominantIndex(nums: number[]): number {
const empty = {val: -Infinity, index: -Infinity}
let first = {...empty}
let second = {...empty}
for(let i = 0; i < nums.length; i++) {
const num = nums[i]
if(num > first.val) {
second = {...first}
first.val = num
first.index = i
} else if(num > second.val) {
second.val = num
second.index = i
}
}
if(first.val >= (second.val * 2)) return first.index
return -1
};