[๋ฐฑ์ค-1074] Z / Python
๐ Problem Solving/Baekjoon
1074๋ฒ: Z
ํ์๋ ํฌ๊ธฐ๊ฐ 2N × 2N์ธ 2์ฐจ์ ๋ฐฐ์ด์ Z๋ชจ์์ผ๋ก ํ์ํ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 2×2๋ฐฐ์ด์ ์ผ์ชฝ ์์นธ, ์ค๋ฅธ์ชฝ ์์นธ, ์ผ์ชฝ ์๋์นธ, ์ค๋ฅธ์ชฝ ์๋์นธ ์์๋๋ก ๋ฐฉ๋ฌธํ๋ฉด Z๋ชจ์์ด๋ค. ๋ง์ฝ, N > 1์ด ๋ผ์
www.acmicpc.net
def z(n, x, y):
global answer
if x == r and y == c:
print(int(answer))
exit(0)
if n == 1:
answer += 1
return
if not (x <= r < x + n and y <= c < y + n):
answer += n ** 2
return
z(n / 2, x, y)
z(n / 2, x, y + n / 2)
z(n / 2, x + n / 2, y)
z(n / 2, x + n / 2, y + n / 2)
n, r, c = map(int, input().split())
answer = 0
z(2 ** n, 0, 0)
ํด์ค
์ฌ๊ท์ ์์ ์ด ์๋๋ฐ ๋ฌธ์ ๋ฅผ ์ดํดํ๋ ํ ์ ์์๋ค.
์ฃผ์ด์ง ํฌ๊ธฐ์์ 4๋ฑ๋ถ์ผ๋ก ๊ณ์ ์ชผ๊ฐ์ฃผ๋ฉด์ r๊ณผ c๊ฐ ๋ฑ๋ถํ ์ฌ๊ฐํ ์์ ์์ผ๋ฉด ์ฌ๊ฐํ์ ๋์ด๋งํผ ๋ํด์ค๋ค.
'๐ Problem Solving > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-1676] ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ / Python (0) | 2021.05.25 |
---|---|
[๋ฐฑ์ค-1620] ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ / Python (0) | 2021.05.25 |
[๋ฐฑ์ค-7569] ํ ๋งํ / Python (0) | 2021.05.23 |
[๋ฐฑ์ค-2468] ์์ ์์ญ / Python (0) | 2021.05.23 |
[๋ฐฑ์ค-2583] ์์ญ ๊ตฌํ๊ธฐ / Python (0) | 2021.05.22 |