수학에서 행렬은 수나 기호, 수식을 네모꼴로 배열한 것이다. 가로줄을 행, 세로줄을 열이라고 한다. 행의 개수와 열의 개수가 같은 행렬을 정방행렬이라고 한다.
매직스퀘어는 다음 두 성질을 만족하는 n×n 정방행렬이다.
- 원소는 1부터 n2까지의 정수이고, 중복되는 수가 없이 모두 달라야 한다.
- 각 행의 합, 각 열의 합, 두 대각선(왼쪽 위에서 오른쪽 아래, 오른쪽 위에서 왼쪽 아래)의 합이 모두 같다. 이 합은 2n×(n2+1)이다.
즉 n=2이면 합은 5, n=3이면 합은 15, n=4이면 합은 34이다. n=2인 매직스퀘어는 존재하지 않는다.
정방행렬을 입력받아 그 행렬이 매직스퀘어인지 판정하는 프로그램을 작성하시오.