1780-用紙数
7437 ワード
📚 1780-用紙数
紙の数
理解する紙の個数の問題は ループ文の開始点と対応する位置区間値が異なる場合、確認するスペースが必要です. 9区間を確認する必要があるので,複文を繰り返し,複文コールを行う.9区間ごとに確認します.
ソース
採点結果
リファレンス https://zidarn87.tistory.com/385
紙の数
理解する
dfs
で解くことができる.ソース
import sys
read = sys.stdin.readline
n = int(read())
board = [list(map(int, read().split())) for _ in range(n)]
array = [0] * 3
def dfs(x, y, n):
global array
num_check = board[x][y]
# 위의 구간 두개의 for문 돌리면서 현재 시작점과 해당 위치 구간 값이 다르다면 재귀호출
# print()
# print("현재 x, y, n", x, y, n)
for i in range(x, x + n):
for j in range(y, y + n):
# print("i, j", i, j, "board : ", board[i][j], "num_check: ", num_check, "N : ", n)
if board[i][j] != num_check:
for k in range(3):
for l in range(3):
# print("i, j 결과", i, j)
# print("k, l 결과",k,l)
dfs(x + k * n // 3, y + l * n // 3, n // 3)
# print("dfs 종료")
# 위 반복문 두 개는 이제 해당 구간안에서 9개 구간을 재귀호출한다.
return
# 해당 좌표 값이 -1, 0, 1 인 경우
if num_check == -1:
array[0] += 1
elif num_check == 0:
array[1] += 1
else:
array[2] += 1
dfs(0, 0, n)
print("\n".join(map(str, array)))
採点結果
リファレンス
Reference
この問題について(1780-用紙数), 我々は、より多くの情報をここで見つけました https://velog.io/@chang626/1780-종이의-개수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol