반응형
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 2751번 수 정렬하기2 자바(Java)
1) 문제번호 : 2751번
2) 문제 출처
2. 문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
3. 제약사항
-
4. 입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
5. 출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
6. 풀이
- 이 문제에서 Arrays.sort()를 사용하면 시간초과가 난다.
- Arrays.sort()는 dual pivot Quick Sort로 최악의 경우 O(n^2)의 시간복잡도를 가진다. 아마 테스트케이스에서 O(n^2)을 겨냥한 테케가 있다.
- 자바에서 그나마 성능이 좋은 Timsort를 사용하는 Collection을 이용한 sort나 Counting sort를 사용하면 된다.
7. 소스 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int N = sc.nextInt();
ArrayList<Integer> List = new ArrayList<>();
for(int i=0;i<N;i++) List.add(sc.nextInt());
Collections.sort(List);
for(Integer c : List) sb.append(c).append('\n');
System.out.println(sb);
}
}
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 15815번 천재 수학자 성필 C++ (0) | 2021.03.07 |
---|---|
[백준 알고리즘] 백준 1026번 보물 자바(Java) (4) | 2021.03.05 |
[백준 알고리즘] 백준 2810번 컵홀더 자바(Java) (0) | 2021.03.05 |
[백준 알고리즘] 백준 2563번 색종이 파이썬(Python) (2) | 2021.03.05 |
[백준 알고리즘] 백준 1003번 피보나치 함수 자바(Java) (0) | 2021.03.04 |
[백준 알고리즘] 백준 14889번 스타트와 링크 자바(Java) (0) | 2021.03.04 |
[백준 알고리즘] 백준 14501번 퇴사 자바(Java) (0) | 2021.03.02 |
[백준 알고리즘] 백준 2668번 숫자고르기 자바(Java) (0) | 2021.03.01 |
최근댓글