[백준]S5-2578
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
Author And Source
이 문제에 관하여([백준]S5-2578), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@py_code/백준S5-2578저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)