선택 정렬

소트인사이드

Question - 1427

Code

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        
        int[] A = new int[str.length()];
        for (int i = 0; i < str.length(); i++) {
            A[i] = Integer.parseInt(str.substring(i, i + 1));
        }
        
        for (int i = 0; i < str.length(); i++) {
            int Max = i;
            for (int j = i + 1; j < str.length(); j++) {
                if (A[j] > A[Max])
                    Max = j;
            }
            
            if(A[i] < A[Max]) {
                int temp = A[i];
                A[i] = A[Max];
                A[Max] = temp;
            }
        }
        
        for (int i = 0; i < str.length(); i++) {
            System.out.print(A[i]);
        }
    }
}

Insight

  • 나머지 연산으로 분리할 수도 있지만, 여기서는 입력값을 String으로 받은 수 substring() 함수를 이용해 자릿수 단위로 분리하고, 이를 다시 int형으로 변경해 배열에 저장한다.

  • for 문에 j = 0, 이라고 해서 오름차순이 출렸됐다. for 문의 초기, 조건, 증가 조건을 주의해서 쓰자.

  • 두 번째에서, int 배열로 선언하면 안되고, Integer 배열로 선언해야 한다.

Idea

  • 문자열

  • 정렬

reference

Last updated