on
[알고리즘] 학급 회장(해쉬)
[알고리즘] 학급 회장(해쉬)
설명
학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다. 투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를 발표하고 있습니다. 선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작성하세요. 반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다. 입력 첫 줄에는 반 학생수 N(5<=N<=50)이 주어집니다. 두 번째 줄에 N개의 투표용지에 쓰여져 있던 각 후보의 기호가 선생님이 발표한 순서대로 문자열로 입력됩니다. 출력 학급 회장으로 선택된 기호를 출력합니다. 예시 입력 1 15 BACBACCACCBDEDE 예시 출력 1 C
풀이
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; public class classPresident { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); char answer = ' '; String s = br.readLine(); int max = Integer.MIN_VALUE; HashMap map = new HashMap<>(); for(char x : s.toCharArray()){ map.put(x, map.getOrDefault(x, 0)+1); //get의 값이 없을경우도 처리 x를 불러오되 x값이 없다면 0을 불러와라 } for(char key : map.keySet()) { if (map.get(key) > max) { max = map.get(key); answer = key; } } System.out.println(answer); //map.keySet() => map 객체 탐색 //map.containsKey('A') => map이라는 객체에 특정key가있냐없냐 true or false 리턴 //map.size() => key의 개수 리턴 //map.remove('A') => 특정 키 삭제 } }
from http://til-blog.tistory.com/13 by ccl(A) rewrite - 2021-12-24 02:28:12