[백준] #2630 색종이 만들기 python
2023. 5. 19. 10:35
https://www.acmicpc.net/problem/2630
2630번: 색종이 만들기
첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.
www.acmicpc.net
📕 설명 📕
divide and conquer 방법을 사용하였다.
🧑🏻💻 나의 풀이 🧑🏻💻
import sys
def divide_conquer(x, y, N):
global cut, blue
color = paper[x][y]
for i in range(x, x + N):
for j in range(y, y + N):
if color != paper[i][j]:
divide_conquer(x, y, N // 2)
divide_conquer(x, y + N // 2, N // 2)
divide_conquer(x + N // 2, y, N // 2)
divide_conquer(x + N // 2, y + N // 2, N // 2)
return 0
if color == 0:
cut += 1
else:
blue += 1
if __name__ == '__main__':
N = int(sys.stdin.readline())
paper = list(list(map(int, sys.stdin.readline().split())) for _ in range(N))
cut, blue = 0, 0
divide_conquer(cut, blue, N)
print(cut)
print(blue)
'Programming > Algorithm' 카테고리의 다른 글
[백준] #1235 학생 번호 python (0) | 2023.05.23 |
---|---|
[백준] #1251 단어 나누기 python (0) | 2023.05.22 |
[백준] #1780 종이의 개수 python (0) | 2023.05.18 |
[백준] #2161 카드1 python (0) | 2023.05.17 |
[백준] #1309 동물원 python (0) | 2023.05.16 |