https://www.acmicpc.net/problem/2630
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))
아우 분할과 정복 너무 어렵잖슴 ㅠ_ㅠ
열심히 구글링해서 풀었다.
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 22233번 가희와 키워드(python) (0) | 2023.02.16 |
---|---|
[백준] 4949번 균형잡힌 세상(python) (0) | 2023.02.15 |
[백준] 7569번 토마토 (python) (0) | 2023.02.13 |
[백준] 7576번 토마토 (python) (0) | 2023.02.12 |
[백준] 1931번 회의실 배정(python) (0) | 2023.02.11 |
댓글