문제:
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력:
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력:
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
제출:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class Bj_10989 {
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[] a = new int[n];
for (int i=0; i<n; i++) {
a[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(a);
for (int i=0; i<n; i++) {
bw.write(a[i] + "\n");
}
bw.flush();
}
}
어제 해결한 [백준] 15552번 빠른 A+B 문제를 통해 공부했던 BufferReader, BufferWriter, StringTokenizer
를 사용해서 문제를 해결해보았다.
로직으로는 처음 입력받은 n개의 수를 br.readLine();
을 사용해서 배열에 저장하고, 배열을 Arrays.sort(a);
코드를 사용해서 오름차순 정렬을 해주고 난 다음 반복문을 사용해서 bw.write(a[i] + "\n");
코드를 사용하여 버퍼에 저장해주고 bw.flush();
코드를 사용해 한꺼번에 출력을 해주었다.