[Coding Test] 프로그래머스 JAVA 최빈값 구하기 - HashMap

LeeSeungEun·2023년 5월 11일
0

Coding Test

목록 보기
10/38

1. 문제

2. 코드

import java.util.*;
class Solution {
    public int solution(int[] array) {
        int maxCount = 0;
        int answer = 0;

        Map<Integer, Integer> map = new HashMap<>();

        for(int number : array) {
            int count = map.getOrDefault(number, 0) + 1;

            if(count > maxCount) {
                maxCount = count;
                answer = number;
            }

            else if(count == maxCount) {
                answer = -1;
            }

            map.put(number, count);
        }

        return answer;
    }
}
import java.util.*;

class Solution {
    public int solution(int[] array) {
        HashMap<Integer, Integer> nH = new HashMap<>();
        for (int x : array) {
            nH.put(x, nH.getOrDefault(x, 0) + 1);
        }
        int max = 0;
        for (int key : nH.keySet()) {
            if (nH.get(key) > max) max = nH.get(key);
        }
        ArrayList<Integer> al = new ArrayList<>();
        for (int key : nH.keySet()) {
            if (nH.get(key) == max) al.add(key);
        }
        if (al.size() > 1) return -1;
        return al.get(0);
    }
}

3. 풀이

  • HashMap인 map을 생성하여 각 숫자의 등장 횟수를 카운트한다.
  • 배열 array를 순회하면서 각 숫자의 등장 횟수를 카운트하고, 최빈값을 업데이트한다.

4. 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120812

0개의 댓글