문제
https://www.acmicpc.net/problem/2630
2630번: 색종이 만들기
첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.
www.acmicpc.net
코드
import sys
input=sys.stdin.readline
n=int(input())
array=[list(map(int, input().split())) for _ in range(n)]
white=0
blue=0
def make(n,paper):
global white
global blue
count=0
for i in range(n):
count+=sum(paper[i])
if count==0:
white+=1
elif count==len(paper)*len(paper):
blue+=1
else:
temp=[paper[i][:n//2] for i in range(n//2)]
make(n//2,temp)
temp=[paper[i][n//2:] for i in range(n//2)]
make(n//2,temp)
temp=[paper[i][:n//2] for i in range(n//2,n)]
make(n//2,temp)
temp = [paper[i][n//2:] for i in range(n // 2, n)]
make(n // 2, temp)
make(n,array)
print(white,blue)
'문제풀이 > 기타' 카테고리의 다른 글
[파이썬] [스택] 백준 2504 괄호의 값 (0) | 2022.03.04 |
---|---|
[파이썬] [분할정복] 백준 1992 쿼드트리 (0) | 2022.02.23 |
[파이썬] [Two] Pro 보석 쇼핑 (0) | 2022.02.22 |
* [파이썬] [완전탐색] Pro 소수 찾기 (0) | 2022.02.15 |
* [파이썬] [힙] Pro 디스크 컨트롤러 (0) | 2022.02.13 |