BOJ -1038번수

문딤·2022년 8월 23일
0

감소하는 수

www.acmicpc.net/problem/1038

소스코드

main

  static int cnt;
    static ArrayList<Long> list ;

    public static void main(String[] args) {

        // 음이 아닌 정수 x
        //n번째 감소하는 수가 없다면 -1 출력

        Scanner sc = new Scanner(System.in);

        int num = sc.nextInt();
        list = new ArrayList<Long>();
        if(num<=10){
            System.out.println(num);
        }else if(num > 1022){
            System.out.println("-1");
        }else{
            for (int i = 0; i < 10; i++) {
                calculator(i,1);

                Collections.sort(list);
            }
            System.out.println(list.get(num));
        }

    }

수만들기


   public static void calculator(long num,int idx){

     
        list.add(num);

        //해당하는 수 만들기
        for (int i = 0; i < num % 10 ; i++) {
            calculator((num*10)+i,idx+1);
        }
    }

생각할 점

  1. 자릿수와 나머지
  2. 재귀이므로 자릿수가 딱히 의미가 있을까
  3. 0~9까지의 수를 넣어준다.

참고

profile
풀스택개발자가 될래요

0개의 댓글