yunicornlab

[Softeer] 소프티어 - 장애물 인식 프로그램 JavaScript (Level 2) 본문

Coding Test/Practice

[Softeer] 소프티어 - 장애물 인식 프로그램 JavaScript (Level 2)

yunicornlab 2024. 6. 29. 23:44
반응형

자바스크립트로 Softeer의 장애물 인식 프로그램 이라는 문제 풀기!

 

https://softeer.ai/practice/6282

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

 

DFS 이용 (인접행렬)

const fs = require('fs');
const [n, ...graph] = fs.readFileSync('/dev/stdin', 'utf8').trim().split('\n').map((v, i) => i === 0 ? parseInt(v) : v.split('').map(Number))


let dx = [-1, 0, 1, 0];
let dy = [0, -1, 0, 1];
function dfs(x, y) {
    if (x <= -1 || x >=n || y <= -1 || y >=n) return 0;

    // 방문전이면
    if (graph[x][y] >= 1) {
        graph[x][y] = -1;

        let result = 1;
        result += dfs(x-1, y);
        result += dfs(x, y-1);
        result += dfs(x+1, y);
        result += dfs(x, y+1);
        return result
    }

    return 0;
}

let answer = [];
for (let i=0; i<n; i++) {
    for (let j=0; j<n; j++) {
        let current = dfs(i, j);
        if (current > 0) answer.push(current);
    }
}

answer.sort((a, b) => a-b);
console.log(answer.length)
answer.forEach(v => console.log(v))

 

 

반응형