프로그래머스(N으로 표현)
문제
코드
성공 코드class Solution {
private int staticN;
private int staticNum;
private int result = 9;
public void dfs(int cnt, int number){
if(staticNum == number || cnt > 8){
result = Math.min(result, cnt);
return;
}
int tmp = staticN;
for (int i = 0; i < 8 - cnt; i++) {
if(tmp > (staticN * staticNum)) return;
//불필요 탐색 제거
dfs(cnt + i + 1, number + tmp);
dfs(cnt + i + 1, number - tmp);
dfs(cnt + i + 1, number * tmp);
dfs(cnt + i + 1, number / tmp);
tmp += (staticN * Math.pow(10, i + 1));
}
}
public int solution(int N, int number) {
staticN = N;
staticNum = number;
dfs(0, 0);
return ((result == 9) ? -1 : result);
}
}
Author And Source
이 문제에 관하여(프로그래머스(N으로 표현)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ohbk555/프로그래머스N으로-표현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)