728x90
반응형

완전 수학 문제다. 패턴을 파악하면 되는데 말로 설명하기 조금 번거롭다.

t를 구할 때 R에는 2를 곱하고 C는 그냥 더하는 이유를 생각해보면 풀이가 떠오를 것이라고 생각한다.

이해가 안 된다면 R, C, t, r, c, carry, n을 계속 계산해보면 코드가 이해가 잘 될 것이다.

N, r, c = map(int, input().split())
n = 4 ** N
ans = 0
for i in range(N):
    R = r//(2**(N-1))
    C = c//(2**(N-1))
    t = 2*R + C
    r -= 2**(N-1) * R
    c -= 2**(N-1) * C

    carry = 4 ** (N-1) * t
    n //= 4
    N -= 1
    ans += carry
print(ans)

728x90
반응형

+ Recent posts