마방진 문제

def formingMagicSquare(s):
    # Write your code here
    s = [s[i][j] for i in range(3) for j in range(3)]
    mmatrix = []
    # 참고함
    for a in range(1, 10):
        for b in range(1, 10):
        	# 각 행, 열, 대각선의 합이 15가 되는 모든 경우의 수
            if set([a, 15-a-b, b, 5+b-a, 5, 5+a-b, 10-b, a+b-5, 10-a]) == set(range(1, 10)):
                mmatrix.append([a, 15-a-b, b,
                                      5+b-a, 5, 5+a-b,
                                      10-b, a+b-5, 10-a])
    result = sys.maxsize
    for m in mmatrix:
        cost = 0
        for i in range(9):
            cost += abs(m[i] - s[i])
        result = min(result, cost)
        
    return result

 

def catAndMouse(x, y, z):
    x = abs(x - z)
    y = abs(y - z)
    
    if x == y:
        return 'Mouse C'
    elif x < y:
        return 'Cat A'
    else:
        return 'Cat B'
def getMoneySpent(keyboards, drives, b):
     buy = -1
    
    for k in keyboards:
        if k < b:
            for d in drives:
                if k + d <= b:
                    buy = max(buy, k + d)
                
    return buy
    def countingValleys(steps, path):
    # Write your code here
    result = 0
    check = 0
    
    for p in path:
        if p == 'U':
            if check + 1 == 0:
                result += 1
            check += 1
        else:
            check -= 1   
    
    return result
def pageCount(n, p):
    return min(p // 2, n//2 - p//2)