본문으로 바로가기

[ 문제 ]

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

 

[ 입력 ]

  • 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
  • 둘째 줄부터 N개의 줄에는 수가 주어진다.
  • 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다.
  • 수는 중복되지 않는다.

 

[ 출력 ]

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 

[ 입력 예제 ]

5

5

4

3

2

1

 

[ 출력 예제 ]

1

2

3

4

5

 


Scanner를 사용해서 시간초과가 뜨는 문제는 거의 대부분 Buffer를 사용해서 풀면 해결되는 것 같습니다.

 

import java.io.*;
import java.util.Arrays;

public class Main {

	public static void main (String[] args) throws NumberFormatException, IOException {
    
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int N = Integer.parseInt(br.readLine());
		int[] nums = new int[N];
		for (int i = 0; i < N; i++) nums[i] = Integer.parseInt(br.readLine());

		Arrays.sort(nums);
		
		for (int i = 0; i < N; i++) bw.write(nums[i] + "\n");
		bw.flush();
		bw.close();
	}
}