[ LeetCode ] 169 Majority Element

codesver·2023년 7월 8일
0

LeetCode

목록 보기
21/24
post-thumbnail

📌 Problem

정수 숫자 배열이 주어졌을 때 가장 많이 포함된 정수를 반환하면 된다. 이때 배열의 절반 길이 보다 많이 있으면 가장 많이 포함된 정수이며 해당 정수는 항상 배열의 절반 길이 보다 많이 있다.

📌 Solution

Map을 사용해서 배열을 순차적으로 탐색하며 정수의 개수를 증가시키면 된다. 다만, 중간에 최적화를 할 수 있는데 배열의 절반 길이보다 많아진 정수가 있으면 바로 반환하면 된다.

📌 Code

class Solution {
    fun majorityElement(nums: IntArray): Int {
        HashMap<Int, Int>().also { map ->
            nums.forEach { num ->
                map.merge(num, 1, Int::plus)
                if ((map[num] ?: 0) > nums.size / 2) return num
            }
        }
        throw RuntimeException("Should not reach here")
    }
}
profile
Hello, Devs!

0개의 댓글