[伯俊]2578 Bingo python
7227 ワード
ビンゴ
質問する
ビンゴゲームは以下のように行われます.
まず,次のような25格子からなるBingo板において,1〜25の間で,格子ごとに1個の自然数を用いた.
次は司会者の呼び方を順番に消します.例えば、5、10、7が呼ばれると、この洗顔を拭いてから、ビンゴ板の様子は以下の通りです.
数値を順次削除し、同じ横線、縦線、または対角線の5つの数値を削除すると、その行に線が引かれます.
これらの線が3本以上破られた瞬間、「ビンゴ」を叫び、最初に叫んだ人がゲームの勝者になる.
チョルスは友達とビンゴゲームをしている.チョルスがビンゴー版に書いた数と司会者が呼んだ数の順番を示すときは、司会者が何番目に呼んだかを出力するプログラムを作成してください.チョルスは「ビンゴー」と呼ぶことができますか.
入力
1行目から5行目まで、ビンゴ版に書かれた数字は一番上の横線から順に1行の間に5つのスペースを残します.6行目から10行目まで、司会者の呼び出し数は行ごとに5つのスペースの順だった.Bingoボードに書かれた数字と司会者が歌う数字はそれぞれ1~25の数字を使います.
しゅつりょく
1行目で司会者が何曲目を歌った後、チョルスが「ビンゴ」と叫ぶかどうかを出力した.
解決策
bingo1 = [list(map(int,input().split()))for i in range(5)] #빙고판 불러오기 (가로 빙고 5개 )
bingo2 = list(map(list,zip(*bingo1))) #빙고판 행렬전환 (세로 빙고 5개)
bingo3 = [];bingo4 = []
for i in range(len(bingo1)) :
bingo3.append(bingo1[i][i]) #빙고 왼쪽 대각선
bingo4.append(bingo2[i][4-i]) #빙고 오른쪽 대각선
bingo = bingo1+bingo2
bingo.append(bingo3)
bingo.append(bingo4) #빙고가 되는 경우의 수 12가지 만들기
lst = []
for i in range(5) :
lst += list(map(int,input().split())) #숫자 불러오기
n = 0
for i in lst :
n +=1
cnt = 0
for j in bingo :
if i in j :
j.remove(i) #숫자가 선언되면 빙고 경우의 수 리스트에서 수를 지우기
if j == [] : #빈 리스트이면 cnt + 1
cnt +=1
if cnt >= 3: #빙고가 세개이면 종료
break
print(n)
Reference
この問題について([伯俊]2578 Bingo python), 我々は、より多くの情報をここで見つけました https://velog.io/@holawan/백준-2578빙고-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol