
😎풀이
n * n보드의 모든 셀 값을 1로 초기화
mines에 해당하는 셀의 지뢰(0) 추가
- 모든 셀을 순회하며 생성 가능한 가장 큰
+ 형태의 크기 갱신
3-1. 즉, 4면에서 가장 짧은 길이가 생성 가능한 해당 셀의 가장 큰 + 기호가 됨
function orderOfLargestPlusSign(n: number, mines: number[][]): number {
let largetPlusSign = 0
const board = Array.from({ length: n }, () => Array(n).fill(1))
for(const [y, x] of mines) {
board[y][x] = 0
}
for(let y = 0; y < n; y++) {
for(let x = 0; x < n; x++) {
if(board[y][x] === 0) continue
let topLen = 0
for(let i = y; i >= 0; i--) {
if(board[i][x] === 0) break
topLen++
}
let bottomLen = 0
for(let i = y; i < n; i++) {
if(board[i][x] === 0) break
bottomLen++
}
let leftLen = 0
for(let i = x; i >= 0; i--) {
if(board[y][i] === 0) break
leftLen++
}
let rightLen = 0
for(let i = x; i < n; i++) {
if(board[y][i] === 0) break
rightLen++
}
const plusSign = Math.min(topLen, bottomLen, leftLen, rightLen)
largetPlusSign = Math.max(largetPlusSign, plusSign)
}
}
return largetPlusSign
};