[백준] #1074 Z python

2023. 6. 8. 13:23

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())
cnt = 0

while N > 1:
    size = (2 ** N) // 2
    if R < size and C < size:
        pass
    elif R < size <= C:
        cnt += size ** 2
        C -= size
    elif R >= size > C:
        cnt += size ** 2 * 2
        R -= size
    elif R >= size and C >= size:
        cnt += size ** 2 * 3
        R -= size
        C -= size
    N -= 1


if R == 0 and C == 0:
    print(cnt)
if R == 0 and C == 1:
    print(cnt + 1)
if R == 1 and C == 0:
    print(cnt + 2)
if R == 1 and C == 1:
    print(cnt + 3)

 

BELATED ARTICLES

more