고코딩

[백준 2750번] 수 정렬하기 본문

코딩테스트

[백준 2750번] 수 정렬하기

고코딩 2021. 5. 17. 09:41

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제입력

입력 출력
5
5
2
3
4
1
1
2
3
4
5

정답

사실 이 문제는 자바 공부하다가 Collection에서 sort()함수 있길래 사용해 봤다. sort()함수도 결국에는 피벗 정렬을 이용해서 정려을 하는 방식이였다. 이 문제에서 속도를 줄이고 싶으면 피벗 정렬BufferedReader BufferedWriter를 사용하면 될것이다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;


public class Main {
    private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    private static StringBuilder sb = new StringBuilder();

    public static void main(String[] args) throws IOException {
        int n = Integer.parseInt(br.readLine());

        List<Integer> list = new ArrayList<>();
        for(int i=0;i<n;i++){
            int number = Integer.parseInt(br.readLine());
            list.add(number);
        }

        Collections.sort(list);

        for(int sortedNumber : list){
            sb.append(sortedNumber).append('\n');
        }
        System.out.println(sb);
     }
}

..