브론즈 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 |