[完全探索]BOJ 2578号:ビンゴ

1357 ワード

## template
import sys
bingo = [[0 for _ in range(5)] for _ in range(5)]
check = [[0 for _ in range(5)] for _ in range(5)]
visited=[[0 for _ in range(5)] for _ in range(5)]
num=list()
check_num=list()
result=[[0 for _ in range(5)] for _ in range(5)]

for i in range(5):
  bingo[i]=list(map(int, sys.stdin.readline().split()))
for i in range(5):
  check[i]=list(map(int, sys.stdin.readline().split()))
#check 돌면서 bingo에 있는지 체크해야함.
for i in range(5):
  for j in range(5):
    check_num.append(check[i][j])
cnt=0
result=0

for i in range(5):
  for j in range(5):
    for k in range(0,len(check_num)):
      #check상태인거 있을 때,
      if bingo[i][j]==check_num[k]:
        visited[i][j]=1
        cnt+=1
        #가로세로대각선 체크
        if visited[i]==[1,1,1,1,1]:
          result+=1
        if visited[0][j]==[1,1,1,1,1] or visited[1][j]==[1,1,1,1,1] or visited[2][j]==[1,1,1,1,1] or visited[3][j]==[1,1,1,1,1] or visited[4][j]==[1,1,1,1,1]:
          result+=1
          print(visited)
        if visited[0][0]==1 and visited[1][1]==1 and visited[2][2]==1 and visited[3][3]==1 and visited[4][4]==1:
          result+=1
        if visited[0][4]==1 and visited[1][3]==1 and visited[2][2]==1 and visited[3][1]==1 and visited[4][0]==1:
          result+=1
      if result==3:
        break
print(cnt)
->1つのテストケースのみを満たし、、、^^,,,