[HackerRank] Forming a Magic Square

Jongmin Lee (SAVZAK)·2021년 6월 12일
0

HackerRank

목록 보기
15/39

[문제 링크]

[입력]

int s[3][3]: 3*3 정수형 배열

[입력 제한]

입력하는 배열의 각원소는 1이상 9이하 자연수만 가능하다.

[출력]

int: 입력한 배열을 magic square(마방진)으로 만들기 위한 최소한의 변경값

[코드]

def formingMagicSquare(s):
    # Write your code here
    result = 99999
    Magic_Square = [[[8,1,6],[3,5,7],[4,9,2]],
                    [[4,3,8],[9,5,1],[2,7,6]],
                    [[2,9,4],[7,5,3],[6,1,8]],
                    [[6,7,2],[1,5,9],[8,3,4]],
                    [[6,1,8],[7,5,3],[2,9,4]],
                    [[8,3,4],[1,5,9],[6,7,2]],
                    [[4,9,2],[3,5,7],[8,1,6]],
                    [[2,7,6],[9,5,1],[4,3,8]]] # set of 3*3 magic square
    for k in range(8):
        error_sum = 0
        for i in range(3):
            for j in range(3):
                    error_sum += abs(Magic_Square[k][i][j] - s[i][j])
        if(error_sum <= result):
            result = error_sum
            
    return result
profile
느리지만 단단하게 걷는 개발자

0개의 댓글