본문 바로가기
이론/Data Structure , Algorithm

[210929] 백준 2751번 문제 풀이 / 수 정렬하기 2

by 6161990 2021. 9. 28.

 

 

문제의 핵心

1. 데이터 개수가 최대 1,000,000개다.
2. 카운팅 정렬을 활용하여 빠르게 정렬한다. 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Q7_2751 {
      public static void main(String[] args) throws NumberFormatException, IOException {
           BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
           StringBuilder sb = new StringBuilder();
           boolean[] arr = new boolean[2000001];

           int N = Integer.parseInt(br.readLine());

           for(int i=0; i<N; i++) {
              arr[Integer.parseInt(br.readLine()) + 1000000] = true;
           }

           for(int i=0; i < arr.length; i++) {
               if(arr[i]) {
                     sb.append((i-1000000)).append('\n');
               }
           }
           System.out.println(sb);
     }
}

 

 

 

✅ 또 다른 방법으로는 Collection.sort를 이용하는 방법이 있다. 

이 방법으로는 ArrayList 를 이용했다.