✏️ 문제
💡 최종 코드
N = int(input())
color = [list(map(int, input().split())) for _ in range(N)]
blue = 0
white = 0
def solution(x, y, n):
global white, blue
# 시작점 설정
e_color = color[x][y]
# 4분할
for i in range(x, x+n):
for j in range(y, y+n):
if e_color != color[i][j]:
solution(x, y, n // 2)
solution(x+n//2, y, n//2)
solution(x, y+n//2, n//2)
solution(x+n// 2, y+n//2, n//2)
return
if e_color == 1:
blue += 1
else:
white += 1
return
solution(0, 0, N)
print(white)
print(blue)
마무리
문제를 이해하는데는 어렵지 않았으며 이를 for문으로만 돌리려는 생각을 했었다.
재귀로 여러 문제를 해결하려는 노력이 필요하다
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 11053번, 가장 긴 증가하는 부분 수열 (0) | 2023.04.06 |
---|---|
[백준] 11758번, CCW (0) | 2023.03.30 |
[백준] 1927번, 최소 힙 (0) | 2023.03.09 |