백준

백준 11652 카드(Java)

Park DJ 2023. 1. 28. 04:25

https://www.acmicpc.net/problem/11652

 

11652번: 카드

준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지

www.acmicpc.net


 

해석 및 팁

 


 

이 문제도 HashMap을 사용하여 숫자와 개수를 저장한 후에 최댓값과 value값이 같을 때 해당 key값을 ArratList에 저장하여 오름차순으로 정렬한 뒤 가장 앞에 있는 것을 출력해 주면 됩니다.

 

 


 

Java 코드

 


import java.util.Scanner;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Collections;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    HashMap<Long, Integer> map = new HashMap<>();
    ArrayList<Long> list = new ArrayList<>(); 

    int n = sc.nextInt();
    long max = -1;

    for(int i = 0; i < n; i++) {
      long num = sc.nextLong();
      if(!map.containsKey(num)) map.put(num, 1);
      else map.put(num, map.get(num)+1);
      max = Math.max(max, map.get(num));
    }

    for(Long key : map.keySet()) {
      if(max == map.get(key)) list.add(key);
    }

    Collections.sort(list);

    System.out.println(list.get(0));
  }
}