티스토리 뷰

https://www.acmicpc.net/problem/2589

 

2589번: 보물섬

보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync("./dev/stdin").toString().trim().split("\n");
const [N, M] = input.shift().trim().split(' ').map(Number);
const board = input.map(v => v.trim().split(''))
const Land = [];

for (let i = 0; i < N; i++) {
  for (let j = 0; j < M; j++) {
    if (board[i][j] == 'L') {
      Land.push([i, j])
    }
  }
}

const dx = [0, 0, 1, -1];
const dy = [1, -1, 0, 0];

let answer = 0;
Land.forEach(v => {
  let visited = Array.from(Array(N), () => Array(M).fill(0));
  visited[v[0]][v[1]] = true;
  let q = [];
  let max = 0;
  q.push([v[0], v[1], 0]);
  while (q.length > 0) {
    const [x, y, cnt] = q.shift();
    max = Math.max(max, cnt)
    for (let i = 0; i < 4; i++) {
      const nx = x + dx[i];
      const ny = y + dy[i];
      if (nx >= 0 && ny >= 0 && nx < N && ny < M && board[nx][ny] == 'L' && visited[nx][ny] == false) {
        visited[nx][ny] = true
        q.push([nx, ny, cnt + 1])
      }
    }
  }
  answer = Math.max(max, answer)
})

console.log(answer)
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함