백준 1025 nodejs

윤익·2022년 11월 9일
0

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

const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n')
const [N, M] = input.shift().split(' ').map(Number)
let output = -1
function dfs(num, i, j, x, y) {
  if (Number.isInteger(Math.sqrt(+num)) && output < +num) output = +num
  const [I, J] = [i + x, j + y]
  if (I < N && I >= 0 && J < M && J >= 0 && (x || y))
  // I,J 범위 확인, 무한 루프 방지(x ==0 && y == 0)
    dfs(num + input[i + x][j + y], i + x, j + y, x, y)
}
for (let i = 0; i < N; i++)
  for (let j = 0; j < M; j++)
    for (let x = 1 - N; x < N; x++)
      for (let y = 1 - M; y < M; y++) dfs(input[i][j], i, j, x, y)
console.log(output)
profile
https://nickyoon.tistory.com/ 기술 블로그 이전

0개의 댓글