[백준] 15688번: 수 정렬하기 5 (JAVA)

2022. 1. 16. 22:24알고리즘

https://www.acmicpc.net/problem/15688

 

15688번: 수 정렬하기 5

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다.

www.acmicpc.net

 


 

문제 설명

문제에 보면 시간누적이라는 키워드가 있는데, 이게 무엇이냐면 이 문제를 채점하는데 총 걸리는 시간이 시간 제한에 알맞게 걸려야 정답 처리가 된다는 것이다.

자바는 30초로 30초안에 채점이 끝나야 정답이 된다.

 

코드

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

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		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++) {
			sb.append(nums[i]).append("\n");
		}
		
		System.out.println(sb);
	}
}

코드 설명

기존에 해왔던 정렬방식이랑 같으나 잘못하면 시간 초과가 뜨기 때문에 close문이나 bufferedwriter을 버리고 stringbuilder로 풀었다.