|Pares de alfiles atacantesDifícil
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 15:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

work

Este ejercicio fue usado en una prueba técnica de empleo.

Pares de alfiles atacantes

Difícil100 pts·Prueba Técnica

Enunciado

Adaptado de Daily Coding Problem. Este ejercicio fue preguntado por Google.

En un tablero de ajedrez especial, dos alfiles se atacan entre sí si comparten la misma diagonal. Esto incluye alfiles que tienen otro alfil ubicado entre ellos, es decir, los alfiles pueden atacar a través de otras piezas.

Se te dan N alfiles, representados como pares [fila, columna] en un tablero de M × M. Escribe una función que cuente el número de pares de alfiles que se atacan entre sí. El orden del par no importa: [1, 2] se considera igual a [2, 1].

Por ejemplo, dado m = 5 y la lista de alfiles:

[0, 0]
[1, 2]
[2, 2]
[4, 0]

El tablero se vería así:

[b 0 0 0 0]
[0 0 b 0 0]
[0 0 b 0 0]
[0 0 0 0 0]
[b 0 0 0 0]

Debes devolver 2, ya que los alfiles 1 y 3 se atacan entre sí (misma diagonal principal), así como los alfiles 3 y 4 (misma anti-diagonal).

Ejemplo:

countBishopPairs(5, [][]int{{0,0},{1,2},{2,2},{4,0}}) // 2
countBishopPairs(3, [][]int{})                        // 0

Pista: Dos alfiles están en la misma diagonal principal si fila - columna es igual. Están en la misma anti-diagonal si fila + columna es igual.

Restriccionesexpand_more
  • Dificultad: Difícil
  • Completa todos los test cases para obtener los 100 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar fmt.Println() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Pares de alfiles atacantes — Difícil | Coding Challenges · Coding Challenges