문제 링크
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]);
}
}
}