アルゴリズムビンゴ問題


トラブルシューティングプロセス

  • の数字をクリアできる必要があります.
  • は何行完成しましたか?
  • 難点

  • は何行を完了しましたか.どのようにカウントしますか.
    数字を消して実現できるはずですが、何行完成したのか、どのようにカウントダウンするのか分かりません.
  • if data[0][0]==-1 && data[0][1]=-1 ...data[0][4]=-1
    呼ばれている数字を-1に変えると、上のような繰り返し文を5回+縦5回+対角線を2回繰り返すといいのですが、あまりにも非効率的なようです.
    ->三重複文を使用して、1つの数字がビンゴであるかどうかを確認します.

    コード#コード#

    arr=[]
    numList=[]
    result=0
    bingo=0
    
    for _ in range(5):
      arr.append(list(map(int,input().split())))
      
    for _ in range(5):
      numList+=list(map(int,input().split()))
      
    for k in range(len(numList)):
      for i in range(5):
        for j in range(5):
          bingo=0
          if arr[i][j]==numList[k]:
            arr[i][j]=-1
            result+=1
            
            for m in range(5):
              if arr[m][0]==-1 and arr[m][1]==-1 and arr[m][2]==-1 and arr[m][3]==-1 and arr[m][4]==-1:
                bingo+=1
              
            for m in range(5):
              if arr[0][m]==-1 and arr[1][m]==-1 and arr[2][m]==-1 and arr[3][m]==-1 and arr[4][m]==-1:
                bingo+=1
              
            if arr[0][0]==-1 and arr[1][1]==-1 and arr[2][2]==-1 and arr[3][3]==-1 and arr[4][4]==-1:
              bingo+=1 
          
            if arr[0][4]==-1 and arr[1][3]==-1 and arr[2][2]==-1 and arr[3][1]==-1 and arr[4][0]==-1:
              bingo+=1
            
            if bingo>=3:
              print(result)
              exit()