-
반응형
https://www.acmicpc.net/problem/18511
풀이
기본적인 완전탐색 알고리즘을 이용한 문제입니다.
만들 수 있는 모든 수를 DFS를 이용하여 만들어주며, N값보다 작을때 Answer를 갱신시켜주며 진행하였습니다.
코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int answer = 0; public static void dfs(int[] arr, int num, int n) { if (num > n) { return; } answer = Math.max(answer, num); for (int i = 0; i < arr.length; i++) { dfs(arr, num * 10 + arr[i], n); } } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.valueOf(st.nextToken()); int k = Integer.valueOf(st.nextToken()); int[] arr = new int[k]; st = new StringTokenizer(br.readLine()); for (int i = 0; i < k; i++) { arr[i] = Integer.valueOf(st.nextToken()); } dfs(arr, 0, n); System.out.println(answer); } }
반응형'문제풀이 > 백준oj' 카테고리의 다른 글
[백준OJ] 16973번 직사각형 탈출 - Java (0) 2022.12.31 [백준OJ] 16985번 Maaaaaaaaaze - Java (0) 2022.12.31 [백준OJ] 21943번 연산 최대로 - Java (0) 2022.12.28 [백준OJ] 12837번 가계부 (Hard) - Java (0) 2022.12.28 [백준OJ] 1473번 미로 탈출 (Java) (0) 2022.12.28 댓글