# 선택 정렬

### 소트인사이드

#### Question - 1427

![](https://2669959621-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxncaDDrGpdjhVy86HbwM%2Fuploads%2FbeJ3bwLQCVJBROlFQ8Qv%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-06-01%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.25.38.png?alt=media\&token=123b8224-a98f-44e7-8084-3afdb2a20250)

#### Code

{% tabs %}
{% tab title="선택 정렬" %}
```java
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]);
        }
    }
}
```


{% endtab %}

{% tab title="함수" %}
```java
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class N17_P1427_소트인사이트 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        Integer[] A = new Integer[str.length()];
        for (int i = 0; i < str.length(); i++) {
            A[i] = Integer.parseInt(str.substring(i, i + 1));
        }
        Arrays.sort(A, Collections.reverseOrder());

        for (int i = 0; i < str.length(); i++) {
            System.out.print(A[i]);
        }
    }
}

```
{% endtab %}
{% endtabs %}

#### Insight

* 나머지 연산으로 분리할 수도 있지만, 여기서는 입력값을 String으로 받은 수 substring() 함수를 이용해 자릿수 단위로 분리하고, 이를 다시 int형으로 변경해 배열에 저장한다.&#x20;
* for 문에 j = 0, 이라고 해서 오름차순이 출렸됐다. for 문의 초기, 조건, 증가 조건을 주의해서 쓰자.&#x20;
* 두 번째에서, int 배열로 선언하면 안되고, Integer 배열로 선언해야 한다.&#x20;

#### Idea

* 문자열&#x20;
* 정렬

#### reference



###
