[백준] 1427번: 소트인사이드

chocobiv·2024년 11월 16일
post-thumbnail

문제

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

입력

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

출력

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


예제

예제 입력1

2143

예제 출력1

4321

예제 입력2

999998999

예제 출력2

999999998

예제 입력3

61423

예제 출력3

64321

예제 입력4

500613009

예제 출력4

965310000


코드

import java.util.*;

public class Main {
    public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      int n = scanner.nextInt();
      int count = 0;      	//입력받은 n의 자릿수
      int temp = n;
      do {					//자릿수 계산
          temp /= 10;
          count++;
      } while (temp > 0);
      int[] arr = new int[count];
      for(int i=0; i<arr.length; i++){
        arr[i] = n / (int)Math.pow(10, (count-i-1));   //각 자릿수 배열로 저장
        n %= (int)Math.pow(10, (count-i-1));
      }
      Arrays.sort(arr); 					// 오름차순 정렬
      for(int i=arr.length-1; i>=0; i--){	//내림차순 정렬렬
        System.out.print(arr[i]);
      }
  }
}

✨가져가야할 포인트

do-while로 정수의 자릿수 구하기
→ 입력값이 0인 경우도 고려



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

profile
공부하는 velog

0개의 댓글