개발자 톡
연습문제 톡
장애물 인식 프로그램
JS
- 등록일
- 2024-11-08 11:37:42
- 조회수
- 34
- 작성자
- vavoya6324
const fs = require('fs'); const [range, ...input] = fs.readFileSync('input.txt', 'utf8').trim().split('\n'); let box = input.map(v => v.split('').map(Number)); let nextGroup = 2; const count = [0,0]; function DFS(x, y) { box[x][y] = nextGroup; count[nextGroup]++; if (box[x - 1] && box[x - 1][y] === 1) DFS(x - 1, y); if (box[x + 1] && box[x + 1][y] === 1) DFS(x + 1, y); if (box[x] && box[x][y + 1] === 1) DFS(x, y + 1); if (box[x] && box[x][y - 1] === 1) DFS(x, y - 1); } for (let i = 0; i < range; i++) { for (let j = 0; j < range; j++) { if (box[i][j] === 1) { count[nextGroup] = 0; DFS(i, j); nextGroup++; } } } console.log(nextGroup - 2 + '\n' + count.slice(2).sort((a, b) => a - b).join('\n'));
유니언 파인드 쓰고 싶었는데, 여기서는 좀 아닌 것 같아서 DFS로
#장애물_인식_프로그램