문제 출처
https://www.acmicpc.net/problem/11652
접근 방식 및 풀이
- 중복된 카드 갯수를 세기 위해 key, value map 형식을 사용했다.
- key에 숫자의 범위가 크기 때문에 long으로 지정 (int로 하면 런타임에러!)
소스 코드
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Map<Long, Integer> map = new HashMap<Long, Integer>();
int max_cnt=1;
long max_value= 0;
for (int i = 0; i < n; i++) {
long key = Long.parseLong(sc.next());
if(map.containsKey(key)){
int val = map.get(key)+1;
map.put(key,val);
if(max_cnt == map.get(key)){
max_value= Math.min(max_value, key);
}else if(max_cnt < map.get(key)){
max_cnt=map.get(key);
max_value = key;
}
}else {
map.put(key,1);
if(map.size()==1){
max_value = key;
}
if(max_cnt ==1){
max_value = Math.min(max_value, key);
}
}
}
System.out.println(max_value);
}
}
결과
'Competition > Baekjoon' 카테고리의 다른 글
[백준] 1991번 트리순회 (0) | 2020.03.20 |
---|---|
[백준] 11656번 접미사배열 (0) | 2020.03.19 |
[백준] 11651번 자바 좌표 정렬 2차원배열 (0) | 2020.03.19 |