반응형
var min = 9;
function DFS(N, number, count, result) {
if(min <= count) return;
if(result===number) {
min = min > count ? count : min;
return;
}
if(count===8) return;
let rest = 8 - count;
let nn = 0;
for(let i=0;i<rest;i++){
nn = nn * 10 + N;
DFS(N, number, count+1+i, result+nn);
DFS(N, number, count+1+i, result-nn);
DFS(N, number, count+1+i, result*nn);
DFS(N, number, count+1+i, result/nn);
}
}
function solution(N, number) {
var answer = 0;
DFS(N, number, 0, 0);
if(min> 8)
answer = -1;
else
answer = min;
return answer;
}
N 1개로 만들 수 있는 표현 : N
N 2개로 만들 수 있는 표현 : N+N , N/N, NN, N*N, N-N
N 3개로 만들 수 있는 표현 : N+N+N, NN/N, NNN, NN*N, NN-N, N-NN
가장 중요한건 연속된 NN이다. DFS로 모든 사칙연산에 대해서 조사한다면 완전탐색가능하다.
( N3회 사용) (사칙연산) DFS(1~5회사용) 이런식으로 로직을 짜서 전수탐색가능.
반응형
'ProgramSoliving' 카테고리의 다른 글
프로그래머스 : 줄서는방법 JavaScript (0) | 2021.06.24 |
---|---|
프로그래머스 : 단어 변환 JavaScript (0) | 2021.06.22 |
프로그래머스 : 메뉴 리뉴얼 (0) | 2021.06.14 |
백준 : 8972 (0) | 2021.04.23 |
백준 : 2632 피자판매 (0) | 2021.04.18 |