백준 10989. 수 정렬하기 3

햇승·2021년 12월 14일
0

Algorithm

목록 보기
2/3
post-custom-banner

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

Counting 정렬

: 배열을 이용해서 빈도수를 센 후 출력하는 방식

Counting 정렬 방법

  1. 빈도 수를 셀 count배열 선언
  2. 입력을 받으면서 count 증가

전체코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Boj_10989 {

    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(br.readLine());

        int[] cnt = new int[10001];

        for(int i=0; i<N; i++){
            cnt[Integer.parseInt(br.readLine())]++;
        }
        for(int i=0; i<10001; i++){
            for(int j=0; j<cnt[i]; j++){
                bw.write(i+"\n");
            }
        }

        bw.flush();
    }
}

주의할 점

  1. 주어진 시간 제한이 적었기 때문에 Scannerprintln보다는 BufferedReaderBufferedWriter를 쓰는게 좋다.
  2. 나올 수를 모두 count해야하기 때문에 전 문제(수 정렬하기2)처럼 나올 수 있는 수의 범위가 큰 경우에는 사용하지 못한다.
post-custom-banner

0개의 댓글