[백준] 2750

당당·2023년 4월 28일
0

백준

목록 보기
60/179

https://www.acmicpc.net/problem/2750

📔문제

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


📝입력

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


📺출력

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


📝예제 입력 1

5
5
2
3
4
1

📺예제 출력 1

1
2
3
4
5

🔍출처

-문제의 오타를 찾은 사람: lazy_ren


🧮알고리즘 분류

  • 구현
  • 정렬

📃소스 코드

Arrays.sort() 사용

import java.util.Arrays;
import java.util.Scanner;

public class Code2750 {
    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);
        int N=scanner.nextInt();
        int[] number=new int[N];
        for(int i=0;i<N;i++){
            number[i]=scanner.nextInt();
        }

        Arrays.sort(number);
        for(int i=0;i<N;i++){
            System.out.println(number[i]);
        }
    }
}

이중 for문 사용

import java.util.Arrays;
import java.util.Scanner;

public class Code2750 {
    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);
        int N=scanner.nextInt();
        int[] number=new int[N];
        for(int i=0;i<N;i++){
            number[i]=scanner.nextInt();
        }

//        Arrays.sort(number);
//        for(int i=0;i<N;i++){
//            System.out.println(number[i]);
//        }

        int temp=0;
        for(int i=0;i<N;i++){
            for(int j=i+1;j<N;j++){
                if(number[i]>number[j]){
                    temp=number[i];
                    number[i]=number[j];
                    number[j]=temp;
                }
            }
        }

        for(int i=0;i<N;i++){
            System.out.println(number[i]);
        }
    }
}

📰출력 결과


📂고찰

시간복잡도가 O(n^2)인 정렬 알고리즘으로 풀 수 있다.
삽입정렬, 선택정렬, 버블정렬 등이 있다.

그 중에 내가 푼 방법은 선택정렬이다.

(Arrays.sort()로 풀면 훨씬 쉽다)

profile
MySQL DBA 신입 지원

0개의 댓글