boj 18511 큰 수 구성하기

신준호·2024년 3월 5일
0
post-thumbnail

문제 링크

https://www.acmicpc.net/problem/18511

문제 풀이

재귀 문제
원소의 배열을 내림차순으로 정렬후 n보다 작거나 같은 자연수이기 때문에 큰 원소부터 재귀 진행
재귀를 돌면서 큰 값 갱신

전체 코드

package BOJ;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

public class 큰수구성하기 {

    static int n,k,result;
    static Integer[] arr;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st = new StringTokenizer(br.readLine());
        n = Integer.parseInt(st.nextToken());
        k = Integer.parseInt(st.nextToken());
        arr = new Integer[k];
        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < k; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(arr, Collections.reverseOrder());
        result = 0;
        recur(0);
        System.out.println(result);
    }

    private static void recur(int num) {
        if(num>n){ return;}
        result = Math.max(num, result);

        for (int i = 0; i < k; i++) {
            recur(num * 10 + arr[i]);
        }
    }
}

profile
개발 공부 일지

0개의 댓글