최대 1 분 소요

package src.Week4_1;

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class backjoon_9047 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            String num = sc.next();
            int cnt = 0;
            while (true) {
                if (num.compareTo("6174") == 0) {
                    break;
                }
                String[] str = num.split("");
                String[] str2 = num.split("");
                Arrays.sort(str); // 오름 차순
                Arrays.sort(str2, Collections.reverseOrder()); // 내림 차순
                int min = Integer.parseInt(String.join("", str));
                int max = Integer.parseInt(String.join("", str2));
                num = Integer.toString(max - min);
                if (num.length() != 4) {
                    if (num.length() == 3) {
                        num = "0" + num;
                    } else if (num.length() == 2) {
                        num = "00" + num;
                    } else {
                        num = "000" + num;
                    }
                }
                cnt++;
            }
            System.out.println(cnt);

        }
    }
}

풀이

sort(), sort(str, Collections.reverseOrder())을 통해서 오름차순, 내림차순을 만들고 String.join() 메소드를 사용하여서 배열을 문자열로 만들었다. 그런 다음 규칙대로 max - min으로 만들어주고 네 자리 수를 맞춰야되기 때문에 길이가 4인지 아닌지를 통해서 문자열에 ‘0’을 붙혀주었다.

  • Arrays.sort(배열) : 오름차순으로 정렬시켜 준다.
  • Arrays.sort(배열, Collections.reverseOrder()) : 내립차순으로 정렬시켜 준다.
  • String.join(“”, 배열) : ““안에 문자를 기준으로 배열의 요소들을 붙혀준다.

댓글남기기