Skip to content

Instantly share code, notes, and snippets.

@jac18281828
Created May 20, 2025 19:47
Show Gist options
  • Save jac18281828/0fdcd288983e1f57f6cdf1b5d0e46502 to your computer and use it in GitHub Desktop.
Save jac18281828/0fdcd288983e1f57f6cdf1b5d0e46502 to your computer and use it in GitHub Desktop.
queens attack hackerrank
const MOVES = [[1, 1], [1, 0], [1, -1], [0, 1], [0, -1], [-1, 1], [-1, 0], [-1, -1]]
function queensAttack(n: number, k: number, r_q: number, c_q: number, obstacles: number[][]): number {
// Write your code here
let spaces = 0
const obstacleSet = new Set(obstacles.map(o => `${o[0]},${o[1]}`))
const isvalidpos = (r: number, c: number) => {
return r > 0 && r <= n && c > 0 && c <= n
}
const isobstacle = (r: number, c: number) => {
return obstacleSet.has(`${r},${c}`)
}
MOVES.forEach(move => {
let qpos = [r_q + move[0], c_q + move[1]]
while (isvalidpos(qpos[0], qpos[1]) && !isobstacle(qpos[0], qpos[1])) {
spaces++
qpos = [qpos[0] + move[0], qpos[1] + move[1]]
}
})
return spaces
}
const n = 4
const k = 0
const qp = [4, 4]
const spaces = queensAttack(n, k, qp[0], qp[1], [])
console.log(spaces)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment