[알고리즘] 인프런 - 학급 회장(해쉬)

정은아·2024년 1월 7일
post-thumbnail

인프런 - 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

- Section 4 - 학급 회장 문제

내 풀이

import java.util.HashMap;
import java.util.Scanner;

public class HashMap_01 {
	public static void main(String[] args) {
		
		// 투표용지에서 가장 많이 나온 후보 출력하기
		
		// 1. 테스트케이스 int, String을 받아온다.
		// 2. 답을 출력할 char를 만들어준다.
		// 3. HashMap을 만들어 forEach문을 돌려 값을 채워준다.
		// 4. forEach문을 돌려 그 중 key값이 높은 후보를 출력한다.
		
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		String str = sc.next();
		char answer = ' ';
		int max = Integer.MIN_VALUE;
		
		HashMap<Character, Integer> voteMap = new HashMap<>();
		
		for (char ch : str.toCharArray()) {
			// ch의 key와 value를 채우겠다. value값이 없으면 0 +1 하겠다.
			voteMap.put(ch, voteMap.getOrDefault(ch, 0)+1);
		}
		
		for (char key : voteMap.keySet()) {
			if (voteMap.get(key) > max) {
				max = voteMap.get(key);
                answer = key;
			}
		}
		
		System.out.println(answer);
	}
}

느낀점

HashMap 문제 진짜 어렵다...
일단 값을 forEach문으로 채워넣는것도 어떻게 넣는게 맞는지 계속 고민된다.
HashMap문제를 많이 풀어서 빨리 익혀야겠다.

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글