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