문제풀이/기타
[파이썬] [분할정복] 백준 1074 Z
승무_
2023. 4. 3. 20:30
문제
https://www.acmicpc.net/problem/1074
1074번: Z
한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을
www.acmicpc.net
코드
n,r,c=map(int, input().split())
count=0
def recur(n,nx,ny):
global count
# 출력 조건에 포함되면 출력하고 종료
if nx == r and ny==c:
print(count)
exit(0)
# n이 1인데 출력조건에 포함되지 않으면
if n==1:
count+=1
return
# 해당 사분면에 포함 되지 않으면
elif not (nx<=r<n+nx and ny<=c<n+ny):
count+=(n**2)
return
temp = n // 2
# 왼쪽 위
recur(temp, nx, ny)
# 오른쪽 위
recur(temp, nx, ny + temp)
# 왼쪽 아래
recur(temp, nx + temp, ny)
# 오른쪽 아래
recur(temp, nx + temp, ny + temp)
recur(2**n,0,0)
print(count)