본문 바로가기

자바(JAVA)/자료구조 & 알고리즘

백준 10989번 자바 BufferedReader 해설

백준 10989번 자바 문제

 

 

백준 10989번 자바 BufferedReader 해설

 

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

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		/*
		 * 주어지는 수는 10,000보다 작거나 같은 자연수(=0보다 큼)
		 * 
		 * ex) num[1] = 1, num[2] = 2 .... num[10000] = 10000
		 **/
		int[] num = new int[10001];

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

		StringBuilder sb = new StringBuilder();

		for (int i = 0; i < N; i++) {

			// 중복된 수를 위해 해당 값의 count를 1씩 증가 ex) "5"라는 숫자가 3개면 num[5]는 3개여야 함
			num[Integer.parseInt(br.readLine())]++;

		}

		br.close();

		// N은 0보다 크고 최대값이 10,000인 자연수이므로 i는 1부터 시작
		for (int i = 1; i < 10001; i++) {

			// 중복된 숫자값을 해당 개수만큼 더해준다.
			while (num[i] > 0) {

				sb.append(i).append("\n");
				num[i]--;

			}
		}

		System.out.println(sb);

	}
}