Algorithm/BAEKJOON

[Java] 2750 수 정렬하기

곽수진 2023. 4. 21. 02:17
반응형

문제

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

 

입력

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

 

출력

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

 

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        int[] arr = new int[num];
        
        for(int i=0; i<num; i++){
            arr[i] = scanner.nextInt();
        }
        
        for(int i=0; i<num-1; i++){
            for(int j=0; j<num-1-i; j++){
                if(arr[j] > arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        for(int i=0; i<num; i++){
            System.out.println(arr[i]);
        }
    }
}

int num = scanner.nextInt() : 수의 개수를 사용자로부터 입력받아 변수 num에 저장함

int[] arr = new int[num] : 정렬할 배열 arr를 num 크기만큼 할당 후 선언함

for(int i=0; i<num; i++){ arr[i] = scanner.nextInt() } : 배열에 들어갈 값을 사용자로부터 입력 받음

 

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

▶ 0부터 시작하기 때문에 i 반복문은 num-1까지 반복함

▶ 가장 마지막 값부터 순서대로 큰 값으로 결정되었기 때문에 j 반복문은 num-1-i까지 반복함

▶ 배열의 현재 값 기준으로 그 다음 값보다 클 경우 두 값의 위치를 변경함

반응형

'Algorithm > BAEKJOON' 카테고리의 다른 글

[Java] 1427 소트인사이드  (0) 2023.04.23
[Java] 1377 버블 소트  (2) 2023.04.22
[Java] 11286 절댓값 힙  (0) 2023.04.20
[Java] 2164 카드2  (0) 2023.04.19
[Java] 17298 오큰수  (0) 2023.04.18