๐Ÿ“š Study/Baekjoon

[Silver IV] 2578 ๋น™๊ณ 

์œฐ๊ฐฑ 2026. 3. 31. 05:33

๋Œ€๊ฐ์„  2๊ฐœ & ๊ฐ€๋กœor์„ธ๋กœ ํ•œ์ค„ ์ด๋ฉด 12๊ฐœ์ผ ๋•Œ๊ฐ€ ์ตœ์†Œ ํ˜ธ์ถœ ์ˆ˜๋‹ค..

cnt_num >= 13์œผ๋กœ ํ•ด์„œ ๊ณ„์† ์˜ค๋ฅ˜ ๋‚ฌ์—ˆ๋‹ค..

๊ทผ๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์ฝ”๋“œ ์ตœ์ ํ™”๋Š” ํ• ๊ฒŒ ์—†์—ˆ์Œ

 

import sys

board = [list(map(int, sys.stdin.readline().split())) for _ in range(5)]
numbers = [list(map(int, sys.stdin.readline().split())) for _ in range(5)]

def find_index(number):
    for i in range(5):
        for j in range(5):
            if board[i][j] == number:
                return i, j

def find_bingo_x():
    bingo_x = 0
    for i in range(5):
        cnt = 0
        for j in range(5):
            if board[i][j] < 0:
                cnt += 1
        if cnt == 5:
            bingo_x += 1
    return bingo_x

def find_bingo_y():
    bingo_y = 0
    for j in range(5):
        cnt = 0
        for i in range(5):
            if board[i][j] < 0:
                cnt += 1
        if cnt == 5:
            bingo_y += 1
    return bingo_y

def find_bingo_xy():
    bingo_xy = 0

    cnt = 0
    for i in range(5):
        if board[i][i] < 0:
            cnt += 1
    if cnt == 5:
        bingo_xy += 1

    cnt = 0
    for i in range(5):
        if board[i][4 - i] < 0:
            cnt += 1
    if cnt == 5:
        bingo_xy += 1

    return bingo_xy

def find_bingo():
    return find_bingo_x() + find_bingo_y() + find_bingo_xy()

cnt_num = 0
for i in range(5):
    for j in range(5):
        x, y = find_index(numbers[i][j])
        board[x][y] *= -1
        cnt_num += 1

        if cnt_num >= 12 and find_bingo() >= 3:
            print(cnt_num)
            sys.exit()