Algorithm/문제

31. 학급 회장(해쉬)

챛채 2023. 8. 16. 15:39

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;


public class Main {

    public char solution(int n, String s) {
        char answer=' ';
        //해쉬 맵 선언
        HashMap<Character, Integer> map = new HashMap<>();
        for (char x: s.toCharArray()){
            map.put(x, map.getOrDefault(x,0)+1); //x라는 키의 value값을 가져오되 x가 없으면 0리턴(카운팅할 떄 중요)
        }
        int max = Integer.MIN_VALUE;
        for(char key : map.keySet()) {//map에 존재하는 키 탐색
           // System.out.println(x + " " + map.get(x));
            if(map.get(key)>max){
                max = map.get(key);
                answer = key;
            }
        }
            return answer;
    }
   public static void main(String[] args){
       Main T = new Main();
       Scanner kb = new Scanner(System.in);
       int n = kb.nextInt(); //반 학생 수
       String str =kb.next();
       System.out.println(T.solution(n, str));
   }
}

getOrDefault

- V getOrDefault(Object key, Object defaultValue)

- 찾는 key가 존재하면 찾는 key의 value를 반환하고 없거나 null이라면 default값을 반환한다.