반응형
문제
https://www.acmicpc.net/problem/2630
쿼드트리 문제이다.조건이 만족되지 않을시 4개로 쪼개어 다시 푸는 방식이다.
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 31 32 33 34 | import sys n=int(sys.stdin.readline()) color_paper=[list(map(int,sys.stdin.readline().split())) for _ in range(n)]#x행 y열 white=0#0이면 흰생 blue=0#1이면 파란색 def cut(x,y,n): global blue,white check=color_paper[x][y] for i in range(x,x+n): for j in range(y,y+n): if check!=color_paper[i][j]:#하나라도 같은색이 아니라면 #4등분 cut(x,y,n//2)#1사분면 cut(x,y+n//2,n//2)#2사분면 cut(x+n//2,y,n//2)#3사분면 cut(x+n//2,y+n//2,n//2)#4사분면 return if check==0:#모두 흰색일때 white+=1 return else: #모두 파란색일때 blue+=1 return cut(0,0,n) print(white) print(blue) | cs |
반응형
'알고리즘(python) > 기본' 카테고리의 다른 글
[Python]분할정복 백준 1780 (0) | 2020.01.24 |
---|---|
[Python]분할정복 백준 1992 (0) | 2020.01.23 |
[Python]그리디 알고리즘 백준 1541 (0) | 2020.01.14 |
[Python]그리디 알고리즘 백준 11399 (0) | 2020.01.14 |
[Python]그리디 알고리즘 백준 1931 (0) | 2020.01.14 |
최근댓글