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 붙임
'알고리즘 > 백준 (Pyhthon)' 카테고리의 다른 글
[알고리즘] 백준 2110 공유기 설치 (0) | 2020.02.02 |
---|---|
[알고리즘] 백준 7490 0만들기 (0) | 2020.02.02 |
[알고리즘] 백준 2747 피보나치 수 (0) | 2020.01.30 |
[알고리즘] 백준 10989 수 정렬하기 / python (0) | 2020.01.30 |
[알고리즘] 백준 11650 좌표 정렬하기 (0) | 2020.01.30 |