백준 1987 nodejs

윤익·2022년 11월 13일
0

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

const fs = require('fs')
let I = fs.readFileSync('./dev/stdin').toString().trim().split('\r\n')
const [R, C] = I.shift().split(' ')
const A = new Array(26).fill(0)
I = I.map(r => r.split('').map(e => e.charCodeAt() - 65))
// 알파벳 대문자 숫자로 변환(문자열 탐색보다 숫자 탐색이 빠름)
let O = 0
function dfs(i, j, x) {
  A[I[i][j]]++
  if (x > O) O = x
  if (i >= 1 && !A[I[i - 1][j]]) dfs(i - 1, j, x + 1)
  if (j >= 1 && !A[I[i][j - 1]]) dfs(i, j - 1, x + 1)
  if (i < +R - 1 && !A[I[i + 1][j]]) dfs(i + 1, j, x + 1)
  if (j < +C - 1 && !A[I[i][j + 1]]) dfs(i, j + 1, x + 1)
  A[I[i][j]]--
}
dfs(0, 0, 1)
console.log(O)
profile
https://nickyoon.tistory.com/ 기술 블로그 이전

0개의 댓글

관련 채용 정보