💻 Algorithm/Baekjoon

[JAVA] 백준 10989 - 수 정렬하기3

dlalwl_jpg 2022. 7. 16. 16:13

 브론즈 I

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

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

문제

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


입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.


출력

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


접근방법

메모리초과를 피하기 위해 Arrays.sort()를 사용하여 오름차순으로 정렬하고, 시간초과를 피하기 위해 StringBuilder 를 사용하여 결과를 출력하였다.

 


코드 

package bj_10989;

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

public class bj_10989 {

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		int num = Integer.parseInt(br.readLine()); //입력할 숫자 개수 입력
		int[] n = new int[num];
		
		for(int i = 0; i < num; i++) {
			
			n[i] = Integer.parseInt(br.readLine()); //숫자 입력
		}
		
		Arrays.sort(n); //오름차순 정렬
		
		for(int value : n)
			sb.append(value).append('\n');
		
		//결과 출력
		System.out.println(sb);
			
	}

}

NOTE

처음에 Collections.sort()를 사용해서 정렬했는데 메모리 초과가 났다. 따라서 Arryays.sort()가 메모리를 더 적게 사용한다는 것을 알게 되었다.

'💻 Algorithm > Baekjoon' 카테고리의 다른 글

[JAVA] 백준 11650 - 좌표 정렬하기  (0) 2022.07.17
[JAVA] 백준 2751 - 수 정렬하기2  (1) 2022.07.17
[JAVA] 백준 2164 - 카드2  (0) 2022.07.12
[JAVA] 백준 10845 - 큐  (0) 2022.07.11
[JAVA] 백준 10773 - 제로  (0) 2022.07.08