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
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1076번 저항(python) (0) | 2020.01.24 |
---|---|
백준 알고리즘 1075번 나누기(python) (0) | 2020.01.24 |
백준 알고리즘 1065번 한수(python) (0) | 2020.01.23 |
백준 알고리즘 1057번 토너먼트(python) (0) | 2020.01.23 |
백준 알고리즘 1037번 약수(python) (0) | 2020.01.23 |