본문 바로가기
CodingTest/백준

백준 2750번- 수 정렬하기(JAVA)

by 마운틴케이 2020. 9. 8.

www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

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

www.acmicpc.net

 

기본적인 정렬을 사용하는 문제였습니다.

저는 버블정렬 방식으로 풀었습니다.

 


 

 

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args){

        //백준 2750번 수 정렬하기
        Scanner sc = new Scanner(System.in);
        int cnt = sc.nextInt();
        int[] arr = new int[cnt];
        int temp=0;

        for(int i=0;i<cnt;i++){
            arr[i] = sc.nextInt();
        }

        for(int i=0;i<cnt;i++) {
            for (int j = 0;j<i;j++){
                if (arr[j] > arr[i]) {
                    temp=arr[j];
                    arr[j]=arr[i];
                    arr[i]=temp;
                }
            }
        }

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

        sc.close();

    }
}

 

풀이과정

1. 우선 입력받을 수를 int 변수에 담고, 그 크기만큼의 int 배열을 생성해준다.

   여기서 정렬에 사용할 임의의 변수 temp도 생성했다.

2. 첫번째 반복문에서 cnt만큼의 수를 하나하나 입력받는다.

3. 두번째 반복문에서 이중 for문을 통해 버블정렬 방식으로 arr를 정렬해주었다.

   Arrays.sort(arr);  로 같은 결과를 얻을 수 있다. (기본적으로 오름차순으로 정렬해준다)

4. 세번째 반복문에서는 정렬된 arr을 출력해주었다.

   생성된 Scanner를 닫아준다.