https://programmers.co.kr/learn/courses/30/lessons/42895
import java.util.*;
class Solution {
int result=Integer.MAX_VALUE;
int A;
void solve(int n, int cur, int cnt){
if(cnt>8) return;
if(cur==n) {
result=Math.min(result,cnt);
return;
}
int temp=A;
for(int i=1; i<=8-cnt; i++){
solve(n,cur+temp,cnt+i);
solve(n,cur-temp,cnt+i);
solve(n,cur/temp,cnt+i);
solve(n,cur*temp,cnt+i);
temp=temp*10+A;
}
}
public int solution(int N, int number) {
int answer = 0;
A=N;
solve(number,0,0);
answer=(result==Integer.MAX_VALUE? -1 : result);
return answer;
}
}
'Algorithm > DP' 카테고리의 다른 글
[백준] 13398번 : 연속합 2 (0) | 2021.11.22 |
---|---|
[백준] 구간 합 구하기 5 (C++) (0) | 2021.10.08 |
[백준] 1753번 : 최단경로 (C++, 다익스트라) (0) | 2021.09.17 |
[프로그래머스] 정수 삼각형 (C++) (0) | 2021.09.16 |
[백준] 10164번 : 격자상의 경로 (0) | 2021.09.03 |
댓글