[문제풀이] 04-01. 학급 회장

𝒄𝒉𝒂𝒏𝒎𝒊𝒏·2023년 10월 31일
0

인프런, 자바(Java) 알고리즘 문제풀이

HashMap, TreeSet(자료구조) - 0401. 학급 회장(해쉬)


🗒️ 문제


🎈 나의 풀이

	private static String solution(int n, String str) {
        String answer = "";
        int max = Integer.MIN_VALUE;
        HashMap<String, Integer> map = new HashMap<>();

        for(int i=0; i<n; i++ ) {
            int x = 0;
            String s = String.valueOf(str.charAt(i));
            if(map.containsKey(s)) x = map.get(s);
            map.put(s, ++x);
        }

        for(String key : map.keySet()) {
            if(map.get(key) > max) {
                answer = key;
                max = map.get(key);
            }
        }

        return answer;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        String str = sc.nextLine();
        System.out.println(solution(n, str));
    }


🖍️ 강의 풀이

    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); 
		}

		int max=Integer.MIN_VALUE;
		for(char key : map.keySet()){
			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));
	}


💬 짚어가기

해당 문제는 Map을 이용하여 푸는 문제이다. Map은 Java에서 제공하는 자료구조로,
KeyValue로 데이터를 핸들한다. 특징으로 Key는 유일하며, Value는 중복이 가능하다.

나의 풀이에서는 map.containsKey(key) 메소드를 통해 존재 유무를 확인한 후 값을 추가하도록
구성하였고, 강의에서는 map.getOrDefault(key, value) 메소드를 사용하였다.

이후 map.ketSet()를 순회하며 가장 큰 값을 갖고 있는 key를 찾는다.

profile
𝑶𝒏𝒆 𝒅𝒂𝒚 𝒐𝒓 𝒅𝒂𝒚 𝒐𝒏𝒆.

0개의 댓글