문제 내용을 보면, 입력으로 자연수를 받고, 오름차순 순서로 하나씩 출력해주면 된다.
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 Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int count = Integer.parseInt(br.readLine());
int[] arr = new int[count];
for (int i = 0; i < count; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr);
for (int val : arr) {
bw.write(String.valueOf(val) + "\n");
}
bw.flush();
bw.close();
br.close();
}
}
겉보기에는 오름차순으로 정렬만 해서 하나씩 뽑으면 될 것 같지만, 이상한 곳에서 시간 초과 에러에 허우적거리기 쉬운데 BufferedWriter를 사용해서 출력할 값을 모두 넣은 뒤, flush로 한 번에 뽑아주면 시간 초과에 걸릴 걱정 없이 문제를 풀어줄 수 있다
Leave a Reply