백준 알고리즘 문제(80) - 수 정렬하기 3

Code_Alpacat·2021년 9월 12일
0

처음에는 헷갈렸던 countingsort를 이번 문제를 통해 확실히 이해를 하게되었다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class java_io {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	public static void main(String[] args) throws IOException {
		int N = Integer.parseInt(br.readLine());
		
		int[] arr = new int[10001];
		
		for(int i =0; i<N; i++) {
			arr[Integer.parseInt(br.readLine())]++;
		}
		br.close();
		
		StringBuilder sb = new StringBuilder();
		
		for(int i =1; i<10001; i++) {
			
			while(arr[i]>0) {
				sb.append(i).append('\n');
				arr[i]--;
			}
		}
		System.out.println(sb);
	}
	
}

출처 : Stranger's Lab

간단한 것을 이론을 보고 어렵다고 생각했었다. 이전에 아스키코드로 문자에 해당하는 배열을 찾았듯이, 입력받은 수를 배열안에 집어넣고 그 배열의 값을 할당해주면 결국 출력할 때, 값이 들어있는 배열만 차례대로 출력해줘도 순서대로 정렬이 되는 것이다.

역시 처음 이론을 보면 겁부터 먹지만 막상 이해하면 자신감이 생긴다.

profile
In the future, I'm never gonna regret, cuz I've been trying my best for every single moment.

0개의 댓글