
😎풀이
nums 순회
1-1. 짝수 요소인 경우 빈도 저장
- 저장된 빈도 순회
2-1. 기존 최대 빈도 요소보다 적은 빈도인 경우, 생략
2-2. 기존 최대 빈도 요소와 같은 빈도인 경우, 값을 비교하여 더 낮은 값 채택
2-3. 기존 최대 빈도 요소보다 많은 빈도인 경우, 최대 빈도 및 값 갱신
- 최대 빈도를 갖는 값 중 짝수 최솟값 반환
function mostFrequentEven(nums: number[]): number {
const frequent = new Map()
for(const num of nums) {
if(num % 2 !== 0) continue
frequent.set(num, (frequent.get(num) ?? 0) + 1)
}
let maxFreq = 0
let smallestNum = Infinity
for(const [key, value] of frequent) {
if(maxFreq > value) continue
if(maxFreq === value) {
smallestNum = Math.min(smallestNum, key)
continue
}
maxFreq = value
smallestNum = key
}
if(smallestNum === Infinity) return -1
return smallestNum
};