반응형
정렬 자체는 어렵지 않은데 시간 복잡도가 O(nlogn)여야 해서 그냥 일반 버블정렬이나 Array.sort 함수로는 시간초과로 실패가 된다.
병합 정렬, 힙 정렬 로 풀 수 있다고 한다.
하지만 그대로 구현하게 되면 많이 복잡하므로 자바에 내장된 Collections.sort 함수를 사용하자. 병합정렬이라고 한다.
Arrays.sort함수는 시간초과로 실패가 떴다.
그리고 Scaaner 대신 BufferedReader 사용, System.out.print 대신 BufferedWriter을 사용했다.
import java.io.*;
import java.util.*;
//정렬 N개의 수가 주어졌을 때 오름차순으로 정렬
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=0; i<N; i++) {
list.add(Integer.parseInt(br.readLine()));
}
Collections.sort(list);
for(int value : list) {
bw.write(value + "\n");
}
bw.flush();
}
}
코드 자체는 단순한다.
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
[백준] 5597번 자바 과제 안 내신 분...? - 1차원 배열 (0) | 2022.11.08 |
---|---|
[백준] 25305번 자바 커트라인 - 정렬 (0) | 2022.10.05 |
[백준] 25304번 자바 영수증 - 반복문 (4) | 2022.08.16 |
[백준] 2480번 자바 주사위 세개 - 조건문 (0) | 2022.08.14 |
[백준] 2525번 자바 오븐 시계 - 조건문 (1) | 2022.08.14 |
댓글