728x90
2751번. 수 정렬하기 2
- 첫 시도는 Arrays.sort() 사용했는데 시간 초과가 떴다.
- 이 문제는 O(n)에 가까운 정렬 알고리즘을 사용해야 한다.
첫 시도
import java.util.Arrays;
import java.util.Scanner;
/* 2751번. 수 정렬하기 2
* */
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n =kb.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++) arr[i] = kb.nextInt();
Arrays.sort(arr);
for(int x: arr) System.out.println(x);
}
}
두 번째 시도
- Scanner + Collections.sort 사용
- String 보다 StringBuilder 사용하면 기존의 객체에 누적 더하니 속도 빠르다.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
/* 2751번. 수 정렬하기 2
* */
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Main T = new Main();
Scanner kb = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int n =kb.nextInt();
ArrayList<Integer> arr = new ArrayList<>();
for(int i=0; i<n; i++) arr.add(kb.nextInt());
//정렬
Collections.sort(arr);
for(Integer c : arr) {
sb.append(c).append("\n");
}
System.out.println(sb);
}
}
728x90
'코딩 테스트 [준비] > [문풀] Baekjoon_백준 문풀_조지기' 카테고리의 다른 글
백준 | 그래프 순회- 24479번. 깊이 우선 탐색 1 풀이 (0) | 2023.03.22 |
---|---|
백준 | 그래프 순회 - 1260번. DFS와 BFS 풀이 (0) | 2023.03.22 |
백준 | 정렬 섹션 - 2787번. 대푯값 2, 1427번. 소트인사이드 (0) | 2023.03.20 |
백준| 문자열 섹션 - 27866번. 문자와 문자열 (0) | 2023.03.20 |
백준 - 트리 섹션 | 1991번. 트리 순회 (전위, 중위, 후위) DFS (0) | 2023.03.20 |