글 작성자: 취업중인 피터팬
728x90

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

 

2750번: 수 정렬하기

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

www.acmicpc.net

 

문제 설명

 

간단하게 수를 정렬하는 문제입니다

 

 

문제 풀이

해당 문제는 선택정렬을 사용해서 풀도록 하겠습니다.

선택정렬에 대한 내용은  해당 글에서 설명되어 있습니다.

 

 

정답코드

import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        int[] array = new int[n];

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

        selection_sort(array);

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

    public static void selection_sort(int[] array){
        for(int i=0; i<array.length-1; i++){
            int min = i;
            for(int j=i+1; j<array.length; j++){
                if(array[min] > array[j]){
                    swap(array,min,j);
                }
            }
        }
    }

    public static void swap(int[] array,int first, int second){
        int temp = array[first];
        array[first] = array[second];
        array[second]= temp;
    }

}