[알고리즘] 1427번

._mung·2024년 2월 21일
0

Algorithm

목록 보기
25/56

오늘 풀어볼 문제는 백준 1427번 문제 "내림차순으로 자릿수 정렬하기" 이다.

이 문제는 실버5 문제이고 선택 정렬 문제이다.

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.

📌첫 번째 도전📌
선택 정렬을 활용하여 반복문을 활용하여 반복문 범위 내의 값 중 최대값을 찾아 배열 앞으로 배치해주었다.

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        String str = st.nextToken();

        int[] arr = new int[str.length()];

        for(int i=0; i<str.length(); i++) {
            arr[i] = Integer.parseInt(str.substring(i, i+1));
        }

        for(int i=0; i<arr.length; i++) {
            int max = -999;
            int max_index = 0;
            for(int j=i; j< arr.length; j++) {
                if(arr[j] > max) {
                    max = arr[j];
                    max_index = j;
                }
            }
            int tmp = arr[i];
            arr[i] = arr[max_index];
            arr[max_index] = tmp;
        }

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

[문제출처] https://www.acmicpc.net/problem/1427

profile
💻 💻 💻

0개의 댓글

관련 채용 정보