Majority Element

Jamie·2022년 3월 4일
0

LeetCode

목록 보기
10/18
post-thumbnail

📚문제

Given an array nums of size n, return the majority element.

The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists in the array.

Example 1:

Input: nums = [3,2,3]
Output: 3
Example 2:

Input: nums = [2,2,1,1,1,2,2]
Output: 2

Constraints:

n == nums.length
1 <= n <= 5 \* 104
-109 <= nums[i] <= 109

💡풀이

var majorityElement = function (nums) {
    // nums에서 가장 큰 수를 찾는다
    // 그 수의 요소 만큼 0을 가지고 있는 배열 하나를 만든다
    // nums를 반복문을 돌리면서 해당 인덱스에 1씩 더해준다
    // 반복문이 끝나면 배열에서 가장 높은 숫자를 가지고 있는 요소의 인덱스를 구해서 리턴한다

    let max = Math.max(...nums);

    let count = new Array(max + 1).fill(0);
    for (let i = 0; i < nums.length; i++) {
        count[nums[i]] += 1;
    }
    let answer = Math.max(...count);
    return count.indexOf(answer);
};

✅ 처음에는 배열이 아닌 객체의 키와 값으로 넣어서 풀려고 했으나 생각만큼 배열로 값이 넣어지지 않았다.
그래서 다시 생각해보니 배열로 간단하게 1씩 더하며 푸는 방법이 생각나서 냉큼 그 방법으로 해결했다.
간단한 문제이지만 또 이것저것 생각해보게 되는 문제였다.
풀면 풀수록 신기한 코딩의 세계:)

profile
공부하고 비행하다 개발하며 여행하는 frontend engineer

0개의 댓글