본문 바로가기
프로그래밍/백준 알고리즘 코드

[백준] 2751번 자바 수 정렬하기 2 - 정렬

by 졸린이 2022. 10. 3.
반응형

정렬 자체는 어렵지 않은데 시간 복잡도가 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();
	}
}

코드 자체는 단순한다.

반응형

댓글