백준 - Z 1074번
👏 key point
쿼드트리와 비슷한 방식으로 분할정복으로 문제를 풀려고 했으나 재귀함수다 보니 계속해서 시간초과문제가 발생하였다. 그래서 그냥 반복문으로 1,2,3,4분면을 구분하여 문제를 풀었다.
🎂 코드
n,row,col=map(int, input().split())
cnt = 0
while n > 1:
size = 2 ** (n-1)
#1사분면에 있다면
if row < size and col >= size:
cnt += pow(size,2)
col -= size
#2사분면에 있다면
elif row >= size and col < size:
cnt += pow(size,2) * 2
row -= size
#3사분면에 있다면
elif row >= size and col >= size:
cnt += pow(size,2) * 3
row -= size
col -= size
n -= 1
# n == 1일때
#1사분면에 있다면
if row == 0 and col == 1:
cnt += 1
#2사분면에 있다면
elif row == 1 and col == 0:
cnt += 2
#3사분면에 있다면
elif row == 1 and col == 1:
cnt += 3
print(cnt)
Author And Source
이 문제에 관하여(백준 - Z 1074번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@turtle601/백준-Z-1074번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)