728x90
반응형
문제
https://www.acmicpc.net/problem/1302
풀이
해당 문제는 문자열과 관련된 문제로, map 자료구조를 활용해 해결했습니다.
- string 값들의 수를 관리하기 위해서 Map 자료구조를 사용했으며
- 입력을 받으면서 map에 저장한다음 max 값을 갱신해줍니다.
- for문을 순회하면서, max값과 동일한 key에 대해서 List에 저장해두고
- 오름차순 정렬 후 0번째 인덱스를 출력합니다.
코드
14,212 KB / 100 ms
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
Map<String, Integer> map = new LinkedHashMap<>();
List<String> list = new ArrayList<>();
int max = 0;
String res = "";
for (int i = 0; i < N; i++) {
String cur = br.readLine();
if(map.getOrDefault(cur, 0) == 0)
map.put(cur, 1);
else
map.put(cur, map.get(cur) + 1);
max = Math.max(max, map.get(cur));
}
for(String val: map.keySet()){
int curVal = map.get(val);
if(curVal == max) list.add(val);
}
Collections.sort(list);
System.out.println(list.get(0));
}
}
728x90
반응형