매직 스퀘어로 변경하기

면접 대비

시간 제한2초메모리 제한512 MB

요약
1부터 9까지의 수가 채워진 3x3 배열이 주어질 때, 각 칸을 a에서 b로 바꾸는 비용이 |a - b|일 때 마방진으로 만들기 위한 최소 비용을 구한다.
난이도

보통10점 중 4점

유형
완전 탐색, 구현, 행렬, 수학
정답자
아직 제출이 없습니다

문제

1부터 N2N^2까지의 수가 하나씩 채워져 있는 크기가 N×NN \times N인 배열이 있고, 이 배열의 모든 행, 열, 길이가 NN인 대각선의 합이 모두 같을 때, 매직 스퀘어라고 한다.

크기가 3×33 \times 3인 배열 AA가 주어졌을 때, 이 배열을 매직 스퀘어로 변경하려고 한다. 한 칸에 있는 수 aa를 bb로 변경하는 비용은 ∣a−b∣|a - b|이다. 예를 들어, 아래와 같은 경우를 살펴보자.

5 3 4
1 5 8
6 4 2

이 배열의 수를 아래와 같이 변경하면 매직 스퀘어가 되고, 비용은 ∣5−8∣+∣8−9∣+∣4−7∣=7|5 - 8| + |8 - 9| + |4 - 7| = 7이다.

8 3 4
1 5 9
6 7 2

3×33 \times 3 크기의 배열 AA가 주어졌을 때, 이 배열을 매직 스퀘어로 변경하는 비용의 최솟값을 구해보자. 배열 AA는 1부터 9까지의 수로만 채워져 있고, 매직 스퀘어로 변경한 배열도 1부터 9까지의 수로만 채워져 있어야 한다.

입력

총 세 개의 줄에 걸쳐서 배열 AA의 원소가 주어진다.

출력

첫째 줄에 배열 AA를 매직 스퀘어로 변경하는 비용의 최솟값을 출력한다.

예제2

  1. 예제 1

    입력
    4 9 2
    3 5 7
    8 1 5
    
    예상 출력
    1
    
  2. 예제 2

    입력
    4 8 2
    4 5 7
    6 1 6
    
    예상 출력
    4