백준 2750 수 정렬하기

바그다드·2023년 6월 17일
0
  • 인접한 두 데이터의 크기를 비교해 정렬하는 방법
  • O(n^2)의 시간복잡도를 가짐

문제

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

입력

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

출력

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

예제 입력 1

5
5
2
3
4
1

예제 출력 1

1
2
3
4
5

풀이

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        for (int i = n-1; i > 0; i--){
            for (int y = 0; y < i; y++){
                if (arr[y]>arr[y+1]){
                    int tmp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = tmp;
                }
            }
        }
        for (int i =0; i < n; i++){
            System.out.println(arr[i]);
        }
    }

리뷰

데이터의 범위도 작아서 시간복잡도를 신경쓰지 않아도 되는 문제라 간단했다.
근데 사실 이렇게 안해도 Arrays의 sort()메서드를 사용해도 되는거 아닌가...?

profile
꾸준히 하자!

0개의 댓글