코린이의 소소한 공부노트

[LeetCode/Easy] 2404. Most Frequent Even Element 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2404. Most Frequent Even Element

무지맘 2023. 6. 22. 21:52

1. Input

1) int[] nums

 

2. Output

1) nums에 나오는 짝수 중 가장 많이 나타나는 짝수를 반환

- 만약 빈도 수가 같은 짝수가 여러 개라면, 그 중 가장 작은 것을 반환

2) 조건에 맞는 숫자를 찾을 수 없다면 -1을 반환

 

3. Constraint

1) 1 <= nums.length <= 2000

2) 0 <= nums[i] <= 10^5

 

4. Example

Input: nums = [0,1,2,2,4,4,1] -> Output: 2

설명: 짝수는 0, 2, 4가 있고, 이 중 242번으로 가장 많이 나타난다. 조건을 만족하는 숫자가 여러 개이므로 둘 중 작은 2를 반환한다.

 

5. Code

1) 첫 코드(2023/06/22)

class Solution {
    public int mostFrequentEven(int[] nums) {
        HashMap<Integer,Integer> m = new HashMap<>();
        int freq = 0;
        for(int i : nums)
            if(i%2==0){
                m.put(i, m.getOrDefault(i,0)+1);
                if(m.get(i)>freq)
                    freq = m.get(i);
            }
        int answer;
        if(m.isEmpty())
            answer = -1;
        else{
            List<Integer> list = new ArrayList<>();
            for(int i : m.keySet()){
                if(m.get(i)==freq)
                    list.add(i);
            }
            list.sort(Comparator.naturalOrder());
            answer = list.get(0);
        }
        return answer;
    }
}

- 30%, 48%