Etc/Algorithm

[JAVA] 백준 2751번: 수 정렬하기 2

달의 조각 2022. 6. 27. 21:35

시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있다

 

💡

1. Colletions.sort()를 사용한다
    시간 복잡도 O(n) ~ O(nlogn)을 보장한다
    단, 배열 대신 리스트를 사용해야 한다
2. StringBuilder를 사용한다
    String과 문자열을 더할 때 새로운 객체를 생성하지 않고 기존 데이터에 더하는 방식이다
    속도가 빠르고 부하가 적다

import java.util.*;

public class Main {

    public static void main(String[] args) {

        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(System.in);
        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 i : list) {
            sb.append(i).append("\n");
        }

        System.out.print(sb);
    }
}