[백준] 1780번: 종이의 개수
재귀 문제였다 쉬웠다 그런데 나는 또 인덱스 실수를 했다
n = int(input())
arr = []
for _ in range(n):
arr.append(list(map(int, input().split())))
ans = [0, 0, 0] #-1, 0, 1 종이의 개수
def solve(i, j, n):
if n == 1:
ans[arr[i][j]+1] += 1
return
first = arr[i][j]
isUsable = True # 모두 같은 숫자면 종이를 쓸 수 있다
for r in range(n):
for c in range(n):
if first != arr[i+r][j+c]:
isUsable = False
break
if not isUsable:
break
if isUsable:
ans[arr[i][j]+1] += 1
return
else:
for r in range(3):
for c in range(3):
solve(i+n//3*r, j+n//3*c, n//3)
solve(0, 0, n)
for e in ans:
print(e)
인덱스를 주의하자
Author And Source
이 문제에 관하여([백준] 1780번: 종이의 개수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kyy00n/백준-1780번-종이의-개수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)