반응형
2630번: 색종이 만들기
첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.
www.acmicpc.net
알고리즘 분류
- 분할 정복
- 재귀
SOLUTION
import sys
def paper(x, y, N) :
color = paper_list[x][y]
for i in range(x, x+N) :
for j in range(y, y+N) :
if color != paper_list[i][j] : # 같은 색이 아니면 4개의 구역으로 나눔
paper(x, y, N//2) # 왼쪽 위
paper(x, y+N//2, N//2) # 오른쪽 위
paper(x+N//2, y, N//2) # 왼쪽 아래
paper(x+N//2, y+N//2, N//2) # 오른쪽 아래
return
if color == 0 :
result.append(0)
else :
result.append(1)
N = int(sys.stdin.readline())
paper_list = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
result = []
paper(0,0,N) # 0,0 부터 탐색 시작
print(result.count(0))
print(result.count(1))
'코딩테스트 대비 > BOJ' 카테고리의 다른 글
[Baekjoon/Python] 9375번: 패션왕 신해빈 - 효과는 굉장했다! (0) | 2021.11.12 |
---|---|
[Baekjoon/Python] 9095번: 1, 2, 3 더하기 - 효과는 굉장했다! (0) | 2021.11.12 |
[Baekjoon/Python] 2606번: 바이러스 - 효과는 굉장했다! (0) | 2021.11.12 |
[Baekjoon/Python] 1463번: 1로 만들기 - 효과는 굉장했다! (0) | 2021.11.12 |
[Baekjoon/Python] 17626번: Four Squares - 효과는 굉장했다! (0) | 2021.11.09 |