😎풀이

  1. Map 자료형을 사용한다.
  2. 숫자의 빈도를 기록한다.
  3. Iterator를 사용해 Map을 순회하며 최빈값을 조회한다.
function majorityElement(nums: number[]): number {
    let majorNum = 0
    let maxFrequency = 0
    // 숫자와 빈도를 저장할 Map 생성
    const map = new Map<number, number>()
    for(const num of nums) {
        map.set(num, (map.get(num) ?? 1) + 1)
    }
    let iter = map.entries()
    while(true) {
        const {value, done}  = iter.next()
        if(done) return majorNum
        // Map을 순회하며 최빈값 탐색
        const [key, val] = value
        if(val > maxFrequency) {
            majorNum = key
            maxFrequency = val
        }
    } 
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글