https://www.acmicpc.net/problem/1992
💡 해결방법
분할정복 알고리즘을 적용해 해결했다.
👀 풀이
풀이 설명
🧾코드
# BOJ 1992
N = int(input())
grid = [input() for _ in range(N)]
def sol(N, r=0, c=0):
color = grid[r][c]
for i in range(r, r+N):
for j in range(c, c+N):
if color != grid[i][j]:
# 모두 같은 색이 아니라면
# 조건에 나온 순서대로 4분할로 쪼갠다.
return '('+ sol(N//2, r, c) + sol(N//2, r, c + N//2) + sol(N//2, r + N//2, c) + sol(N//2, r+N//2, c+N//2) + ')'
# 모두 같은 색이라면 색을 반환한다.
return color
# 정답 출력
print(sol(N))
'문제 풀이 > 백준' 카테고리의 다른 글
[S4] 백준 31797 - 아~파트 아파트(Python3) (4) | 2024.11.14 |
---|---|
[G4] 백준 10830 - 행렬 제곱 (Python3) (0) | 2024.11.11 |
[G5] 백준 1074 - Z (Python3) (1) | 2024.11.10 |
[S3] 백준 1463 - 1로 만들기(Python) (0) | 2024.09.05 |
[G4] 백준 12970 - AB (Python3) (0) | 2024.05.04 |
댓글