백준 2910 빈도 정렬(JAVA)

2024. 8. 5. 13:27·PS(Problem Solving)/JAVA

문제 설명

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

 

풀이과정

 입력된 순서대로 맵에 저장하기 위해서 LinkedHashMap을 사용한다. 그리고, Collections.sort()를 사용해서 빈도 수 대로 맵을 정렬했다.

 

정답코드

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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken());
        int C = Integer.parseInt(st.nextToken());

        Map<Integer, Integer> map = new LinkedHashMap<>();

        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            int num = Integer.parseInt(st.nextToken());
            map.put(num, map.getOrDefault(num, 0) + 1);
        }

        List<Integer> list = new ArrayList<>(map.keySet());
        Collections.sort(list, (o1, o2) -> map.get(o2) - map.get(o1));

        for (int key : list) {
            for (int i = 0; i < map.get(key); i++) {
                bw.write(key + " ");
            }
        }

        bw.flush();
    }
}
저작자표시 비영리 변경금지 (새창열림)
'PS(Problem Solving)/JAVA' 카테고리의 다른 글
  • 백준 2870 수학숙제(JAVA)
  • 백준 4659 비밀번호 발음하기(JAVA)
  • 백준 2828 사과 담기 게임(JAVA)
  • 백준 1992 쿼드트리(JAVA)
SiwonHae
SiwonHae
프로그래밍을 공부하고 있는 학생입니다.
  • SiwonHae
    시원해의 블로그
    SiwonHae
  • 전체
    오늘
    어제
    • 전체보기 (150)
      • PS(Problem Solving) (95)
        • C (25)
        • C++ (33)
        • JAVA (37)
      • Algorithm & Data Structure (13)
      • Computer Science (12)
        • Network (2)
        • Design Pattern (10)
      • Back-end (6)
        • Spring (5)
      • Front-end (1)
        • React (1)
      • JAVA (4)
      • 정보처리기사 (17)
      • SQLD (2)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
SiwonHae
백준 2910 빈도 정렬(JAVA)
상단으로

티스토리툴바