[백준]S5-2578

py_code·2021년 1월 12일
0

백준-실버5

목록 보기
19/19
post-custom-banner

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
profile
개발자를 꿈꿉니다.
post-custom-banner

0개의 댓글