개발자 톡

연습문제 톡 [HSAT 7회 정기 코딩 인증평가 기출] 순서대로 방문하기

JS

등록일
2024-11-08 16:36:22
조회수
63
작성자
vavoya6324
const fs = require('fs');


let input = fs.readFileSync('input.txt', 'utf8').trim().split('\n')


const range = +input[0][0]
const box = input.slice(1, range + 1).map(line => line.split(' ').map(Number))
const points = input.slice(range + 1).map(line => line.split(' ').map(Number))
let pathCount = 0


function DFS(x, y, point) {
    // box 탐색용 x, y
    const X = x - 1
    const Y = y - 1


    // 탐색 중
    box[X][Y] = 1


    // 각 목적지 도착
    if (points[point][0] === x && points[point][1] === y) {
        point++
    }


    // 최종 목적지 도착
    if (points[point] === undefined) {
        box[X][Y] = 0
        return pathCount++
    }




    if (box[X] && box[X][Y + 1] === 0) DFS(x, y + 1, point)
    if (box[X] && box[X][Y - 1] === 0) DFS(x, y - 1, point)
    if (box[X + 1] && box[X + 1][Y] === 0) DFS(x + 1, y, point)
    if (box[X - 1] && box[X - 1][Y] === 0) DFS(x - 1, y, point)


    // 탐색 끝
    box[X][Y] = 0
}


DFS(...points[0], 0)


console.log(pathCount)
#[HSAT_7회_정기_코딩_인증평가_기출]_순서대로_방문하기

이 카테고리의 톡 더보기