🔅코딩테스트 공부🔅/❗백준
[백준] 2630번 색종이 만들기(python)
윤무무
2023. 2. 14. 16:03
https://www.acmicpc.net/problem/2630
2630번: 색종이 만들기
첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.
www.acmicpc.net
1. 내가 작성한 코드
n = int(input()) #한 변의 길이
paper = [list(map(int, input().split())) for _ in range(n)]
result = []
def cut(x,y,n):
color = paper[x][y] #첫 paper의 색
for i in range(x, x+n):
for j in range(y,y+n):
if color != paper[i][j]: #첫 paper와 다른 paper의 색이 같지 않을 경우 재귀
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 color == 0:
result.append(0)
else:
result.append(1)
cut(0,0,n)
print(result.count(0))
print(result.count(1))
아우 분할과 정복 너무 어렵잖슴 ㅠ_ㅠ
열심히 구글링해서 풀었다.