본문 바로가기

ProgramSoliving

프로그래머스 : N으로 표현 JavaScript

반응형
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