본문 바로가기

알고리즘/백준 (Pyhthon)

[알고리즘] 백준 1074 Z

def solve(n, x, y):
    global result
    if n == 2:
        if x==X and y==Y:
            print(result)
            return
        result += 1
        if x==X and y+1==Y:
            print(result)
            return
        result += 1
        if x+1==X and y==Y:
            print(result)
            return
        result += 1
        if x+1==X and y+1==Y:
            print(result)
            return
        result +=1
        return
        
    solve(n/2, x, y)
    solve(n/2, x, y + n/2)
    solve(n/2, x + n/2, y)
    solve(n/2, x + n/2, y + n/2)
    
result = 0
n, X, Y = map(int, input().split(' '))
solve(2**n, 0, 0)
2x2인 경우를 시작좌표를 통해서 재귀적으로 호출하자
전역변수 X, Y는 어디서든 '참조'할 수 있다. 그러나 함수안에서 전역변수에 새로운 값을 '대입'하는것은 불가능
전역변수 result를 함수 내에서 사용하려면 global 붙임