
package 백준.정렬;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class baekjoon_2751 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
int temp = 0;
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
StringBuilder sb= new StringBuilder();
for (int i: arr){
sb.append(arr[i-1]);
}
System.out.println(sb);
}
}
이중 for문으로 직접 정렬하거나, Arrays.sort()를 사용하면 시간초과가 발생한다.
또한 for 문을 이용해 하나하나 System.out.println() 을 통해 출력하는 것 보다, StringBuilder 객체를 호출하여 출력하는것이 속도가 빠르고 부하가 적다.
package 백준.정렬;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class baekjoon_2751 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
List<Integer> list= new ArrayList<>();
for (int i = 0; i < N; i++) {
list.add(Integer.parseInt(br.readLine()));
}
Collections.sort(list);
StringBuilder sb= new StringBuilder();
for (int i: list){
sb.append(i).append("\n");
}
System.out.println(sb);
}
}
리스트로 입력값을 받아서 Collection.sort()를 사용할 경우 시간 초과 문제를 해결할 수 있다.

'PS' 카테고리의 다른 글
| [백준] 11047번 동전 0 (0) | 2025.01.30 |
|---|---|
| [백준] 2504번 - 괄호의 값 (1) | 2025.01.21 |
| [백준] 16564 - 히오스 프로그래머 (2) | 2025.01.11 |
| [프로그래머스] lv2. 가장 큰 수 (1) | 2025.01.04 |
| [java/백준] 1764번 듣보잡 (1) | 2024.02.26 |