https://www.acmicpc.net/problem/1270
코드설명
해시맵(HashMap)을 활용합니다.
과반수(T/2)가 넘을경우 해당 HashMap의 Key를 출력합니다.
코드
package Main; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; public class Main { private static int N, M, C, T; private static int answer = 0; private static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); for(int i=0;i<N; i++) { st = new StringTokenizer(br.readLine()); T = Integer.parseInt(st.nextToken()); long[] arr = new long[T]; for(int j=0;j<T;j++) { arr[j] = Long.parseLong(st.nextToken()); } func(arr, T); } System.out.println(sb.toString()); } public static void func(long[] arr, int arrSize) { HashMap<Long, Integer> hashmap = new HashMap<>(); for(int i=0;i<arr.length;i++) { hashmap.put(arr[i], hashmap.getOrDefault(arr[i], 0) + 1); } for(Map.Entry<Long, Integer> entrySet : hashmap.entrySet()) { if(entrySet.getValue() > arrSize / 2) { sb.append(entrySet.getKey()).append("\n"); return ; } } sb.append("SYJKGW").append("\n"); } }
'알고리즘 > 해시를 사용한 집합과 맵' 카테고리의 다른 글
[백준] 19583 싸이버개강총회 - 해시맵(HashMap) JAVA (0) | 2024.09.11 |
---|---|
[백준] 1972 놀라운 문자열 - 해시셋(HashSet) + DFS(깊이우선탐색) JAVA (0) | 2024.08.13 |
[백준] 22233 가희와 키워드 - HashSet(해시셋) JAVA (0) | 2024.08.12 |
[백준] 9536 여우는 어떻게 울지? - 해시셋(HashSet) JAVA (0) | 2024.07.25 |
[백준] 3273 두 수의 합 - HashSet(해시셋) + 정렬(Sort) + 투포인터(Two Pointer) JAVA (0) | 2024.07.23 |