/ 제출 1 /
import sys
input = sys.stdin.readline
n, r, c = map(int, input().split())
def findOrderZ(n, r, c):
if n == 0:
return 0
half = 2**(n-1)
if r < half and c < half:
return findOrderZ(n-1, r, c)
if r < half and half <= c:
return half*half + findOrderZ(n-1, r, c-half)
if half <= r and c < half:
return half*half*2 + findOrderZ(n-1, r-half, c)
if half <= r and half <= c:
return half*half*3 + findOrderZ(n-1, r-half, c-half)
print(findOrderZ(n, r, c))
문제 관련 설명을 보고 푼터라 그대로 구현만 했다.
와.. 이거 재귀함수 정의 혼자 할 수 있을까..? 진짜 자신 없다.
재귀 문제집은 그냥 싹 다 풀어서 비슷한 유형 나왔을 때 기존 풀이로 때려 맞출 수 있게 해야겠다. 혼자 아이디어 떠올릴 자신이 없다 진자.
'CodingTest > Baekjun Online Judge' 카테고리의 다른 글
[ BOJ / 파이썬 ] 1992 쿼드트리 (0) | 2022.07.25 |
---|---|
[ BOJ / 파이썬 ] 1991 트리 순회 (0) | 2022.07.25 |
[ BOJ / 파이썬 ] 11729 하노이 탑 이동 순서 (0) | 2022.07.25 |
[ BOJ / 파이썬 ] 1697 숨바꼭질 (0) | 2022.07.24 |
[ BOJ / 파이썬 ] 4179 불! (0) | 2022.07.24 |