미소를뿌리는감자의 코딩
[백준 2024/09/10] 2630번 색종이 만들기 본문
728x90
1. 문제
https://www.acmicpc.net/problem/2630
2. 접근 방법
대상이 되는 사각형에서, 합이 n**2 혹은 0 이라면, blue +=1, white +=1을 해준 후, return을 해준다.
만약, 이에 해당되지 않는다면, 4개로 자른 후, 다시 함수에 넣어주어야 한다.
3. 코드
blue = 0
white = 0
def make_origami(n):
origami = []
for i in range(n):
ori = list(map(int, input().split()))
origami.append(ori)
return n, origami
def count_blue_white(left, right, up, down, origami, n):
global blue
global white
summed = 0
for i in range(up, down, 1):
for j in range(left, right, 1):
summed += origami[i][j]
if summed == n**2:
blue += 1
return
elif summed == 0:
white += 1
return
else:
width_mid = int((left + right)/2)
height_mid = int((up + down)/2)
n = int(n/2)
count_blue_white(left, width_mid, up, height_mid, origami, n)
count_blue_white(width_mid, right, up, height_mid, origami, n)
count_blue_white(left, width_mid, height_mid, down, origami, n)
count_blue_white(width_mid, right, height_mid, down, origami, n)
if __name__ == "__main__":
n, origami = make_origami(int(input()))
count_blue_white(0, n, 0, n, origami, n)
print(white)
print(blue)
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준 2024/09/10] 2493번 탑 (0) | 2024.09.10 |
---|---|
[백준 2024/09/10] 1629번 곱셈 (0) | 2024.09.10 |
[백준 2024/09/10] 8983번 사냥꾼 (0) | 2024.09.10 |
[백준 2024/09/10] 2805번 나무 자르기 (0) | 2024.09.10 |
[백준 2024/09/09] 2468번 안전 영역 (2) | 2024.09.09 |