티스토리 뷰

import sys

# 입력 초기화 
n = int(input())
color_paper = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]

# white, blue 총 갯수 
w = 0
b = 0

# cut 함수 
def cut(x, y, n):
  global w, b
  check = color_paper[x][y]
  for i in range(x, x + n):
    for j in range(y, y + n):
      if color_paper[i][j] != check:
        # 1사분면
        cut(x, y, n // 2)
        # 2사분면
        cut(x, y + n//2, n // 2)
        # 3사분면
        cut(x + n//2, y, n // 2)
        # 4사분면 
        cut(x + n//2, y + n//2, n // 2)
        return 

  if check == 0:
    w += 1
    return 
  else:
    b += 1
    return 

cut(0, 0, n)
print(w)
print(b)

 

 

재귀 함수에 대해 다시 한번 공부하게 되었다.

return은 재귀함수에서 꼭 필요한 존재 이니까 기억하자 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함