728x90
programmers.co.kr/learn/courses/30/lessons/42895
코딩테스트 연습 - N으로 표현
programmers.co.kr
동적계획법 카테고리에 있었지만 dfs을 통해 풀었다.
class Solution {
private static int answer = Integer.MAX_VALUE;
private static int n;
private static int target;
public int solution(int N, int number) {
n = N;
target = number;
dfs(0,0);
return answer == Integer.MAX_VALUE ? -1 : answer;
}
public void dfs(int count, int prev){
if(count >8){
answer = -1;
return;
}
if(prev == target){
answer = Math.min(answer, count);
return;
}
int nTemp =n;
for(int i =0;i<8-count;i++){
int newCount = count +i+1;
dfs(newCount, prev + nTemp);
dfs(newCount, prev - nTemp);
dfs(newCount, prev * nTemp);
dfs(newCount, prev / nTemp);
nTemp = nTemp*10+n;
}
}
}
728x90
'프로그래머스 코딩테스트 연습 > Level3' 카테고리의 다른 글
[프로그래머스][JAVA] 순위 (0) | 2021.05.05 |
---|---|
[프로그래머스][JAVA] 정수 삼각형 (0) | 2021.05.05 |
[프로그래머스][JAVA] 디스크 컨트롤러 (0) | 2021.05.05 |
[프로그래머스][JAVA] 리틀 프렌즈 사천성 (0) | 2021.05.05 |
[프로그래머스][JAVA] 가장 먼 노드 (0) | 2021.05.05 |