본문 바로가기

CodingTest/Baekjun Online Judge

[ BOJ / 파이썬 ] 1074 Z

 

/  제출 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))

 

문제 관련 설명을 보고 푼터라 그대로 구현만 했다.

 

와.. 이거 재귀함수 정의 혼자 할 수 있을까..? 진짜 자신 없다.

 

재귀 문제집은 그냥 싹 다 풀어서 비슷한 유형 나왔을 때 기존 풀이로 때려 맞출 수 있게 해야겠다. 혼자 아이디어 떠올릴 자신이 없다 진자.