알고리즘 문제 풀기

백준 17484: 진우의 달 여행 - javascript(완전탐색)

Fo_rdang 2023. 8. 7. 15:20
반응형

이 문제를 완전 탐색으로? dfs로 푸는 방법밖에 생각나지 않아서 dfs로 코드를 작성했는데, 

틀렸다 ! 

런타임 에러가 나온다. 

이 문제에 대한 js 풀이는 찾아봐도 보이지 않는다... 

일단 틀린 코드라도 올린다. !!! 

코드 첨삭 해주실 분 계시다면 댓글로,,, 너무 감사하겠습니다 .. 

let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); 
let [N, M] = input.shift().split(' ').map(v => Number(v)); 
let graph = [] 
for(let i=0; i<N; i++){
    graph[i] = input[i].split(' ').map(v=> Number(v)); 
}
let check = [...Array(N)].map(()=> Array(M).fill(0)); 
let ds = [[-1,-1],[0,-1],[1,-1]]; 
let answer = 99999;
let sum = 0; 
function dfs(x,y L, sum){
    if(L === N+1){
         answer = Math.min(answer,sum)
       }else{
           sum += check[y][x]; 
         for(let i=0; i<3; i++){
         let nx = x + ds[i][0]; 
         let ny = y + ds[i][1]; 
        if(nx >=0 && ny >= 0 && nx <M && ny <N){
            if(check[ny][nx] === 0){
                check[ny][nx] = 1; 
                dfs(nx, ny, L+1, sum)
                check[ny][nx] = 0; 
            }
        }
    }
       }
}
for(let i=0; i<M; i++){
    dfs(i, 0, 0, 0)
}
console.log(answer);
반응형