[白俊]S 5-2578
8520 ワード
def make_list(empty): # 5줄씩 입력 받아 list 구성
for _ in range(5):
empty += list(map(int, input().split()))
return empty
board = make_list([])
removed = make_list([])
idx = 0
while True:
board[board.index(removed[idx])] = 0 # 호명되는 숫자는 0으로 바꾸기
idx += 1
horz = [board[i:i + 5] for i in range(0, 25, 5)] # 가로 1줄 = 1개의 원소인 len(5)짜리 list
vert = [[horz[i][j] for i in range(5)] for j in range(5)] # 세로 1줄 = 1개의 원소인 len(5)짜리 list
diagonal_1 = [horz[i][i] for i in range(5)] # \방향 대각선
diagonal_2 = [horz[i][j] for i,j in zip(range(5), range(4,-1,-1))] # / 방향 대각선
bingo = horz.count([0,0,0,0,0]) + vert.count([0,0,0,0,0]) # 가로 or 세로줄 확인
if sum(diagonal_1) == 0: # 대각선 확인
bingo += 1
if sum(diagonal_2) == 0:
bingo += 1
if bingo >= 3: # 한번에 2줄이 지워질 수도 있으니 == 이 아닌 >=
print(idx)
break
Reference
この問題について([白俊]S 5-2578), 我々は、より多くの情報をここで見つけました https://velog.io/@py_code/백준S5-2578テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol