[LeetCode] Largest Number At Least Twice of Others

준규·2022년 8월 30일
0

숫자 배열 nums가 주어질 때 nums의 최댓값은 중복없이 딱 한개 있다고 한다

이 때 최댓값이 nums의 다른 숫자들보다 최소 두배 이상이면 최댓값의 인덱스를 리턴하고 하나라도 아니라면 -1을 리턴하는 문제이다

Example 을 보자

최댓값은 유니크하게 1개만 존재하고 문제의 요지는 최댓값이 다른 숫자들의 2배이상인지를 체크하는 것이다

이말은 즉 다른 숫자들은 최댓값 / 2 보다 크면 안된다는 말이고 만약 하나라도 나온다면 바로 -1을 리턴하기로 했다

const dominantIndex = function(nums) {
    const halfMax = Math.floor(Math.max(...nums) / 2);
    const index = nums.indexOf(Math.max(...nums))
    nums.splice(index,1);
    
    for(let i = 0; i < nums.length; i++) {
        if(nums[i] > halfMax) {
            return -1;
        }
    }
    return index
};

먼저 최댓값의 절반을 구해주었고 최댓값의 인덱스 값도 따로 할당을 해두고

nums에서 최댓값을 빼준 상태로 for문을 돌았다

만약 최댓값의 절반 값보다 큰 값이 나온다면 -1을 리턴하고 for 문이 무사히 다 돌면 index값을 리턴했다

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글