728x90
https://www.acmicpc.net/problem/2864
메모리: 16064 KB , 시간: 124 ms
사용 알고리즘: 사칙연산, 수학, 문자열, DFS
728x90
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int min, max;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
char[] A = st.nextToken().toCharArray();
char[] B = st.nextToken().toCharArray();
// A의 최솟값, 최댓값 구하기
min = Integer.MAX_VALUE; max = 0;
dfs(A, 0, 0);
// 최솟값, 최댓값 저장
int minSum = min, maxSum = max;
// B의 최솟값, 최댓값 구하기
min = Integer.MAX_VALUE; max = 0;
dfs(B, 0, 0);
// 최솟값, 최댓값 저장
minSum += min;
maxSum += max;
// 출력
System.out.println(minSum + " " + maxSum);
}
private static void dfs(char[] arr, int idx, int num) {
if(arr.length == idx) {
min = Math.min(min, num);
max = Math.max(max, num);
return;
}
if(arr[idx] == '5' || arr[idx] == '6') {
bfs(arr, idx + 1, num * 10 + 5);
bfs(arr, idx + 1, num * 10 + 6);
}
else bfs(arr, idx + 1, num * 10 + (arr[idx] - '0'));
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[백준, BOJ 1996] 지뢰 찾기 (java) (0) | 2024.09.21 |
---|---|
[백준, BOJ 10162] 전자레인지 (java) (1) | 2024.09.16 |
[백준, BOJ 2037] 문자메시지 (java) (1) | 2024.09.15 |
[백준, BOJ 10025] 게으른 백곰 (java) (1) | 2024.09.13 |
[백준, BOJ 2018] 수들의 합 5 (java) (1) | 2024.09.12 |