홍우진의 개발 일기장
[백준] 2578번: 빙고/ 파이썬 본문
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/2578
풀이 코드
import sys
input = sys.stdin.readline
board = {}
check = [[0]*5 for i in range(5)]
for i in range(5):
a = list(map(int,input().split()))
for j in range(5):
board[a[j]] = (i,j)
tick = 0
for _ in range(5):
a = list(map(int,input().split()))
for i in range(5):
tick += 1
if a[i] in board:
check[board[a[i]][0]][board[a[i]][1]] = 1
bingo = 0
for j in range(5):
if sum(check[j]) == 5:
bingo+=1
if sum([k[j] for k in check]) == 5:
bingo+=1
if check[0][4]+check[1][3]+check[2][2]+check[3][1]+check[4][0] == 5:
bingo+=1
if check[0][0]+check[1][1]+check[2][2]+check[3][3]+check[4][4] == 5:
bingo+=1
if bingo >= 3:
print(tick)
sys.exit()
코드 해석
우선 0으로 이루어진 5x5 체스판을 만든다.
그리고 딕셔너리에 각 수를 저장한 후 value에 좌표를 매치하여 저장한다.
사회자가 부르는 숫자를 입력 받은 뒤
불린 숫자가 보드에 있을 경우에 딕셔너리를 이용하여 기록한다.
그 후 빙고를 세주고 만약 빙고가 3개 이상이라면 출력 후 종료한다.
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 7785번: 회사에 있는 사람/ 파이썬 (0) | 2022.08.03 |
---|---|
[백준] 10867번: 중복 빼고 정렬하기/ 파이썬 (0) | 2022.08.03 |
[백준] 1439번: 뒤집기/ 파이썬 (0) | 2022.07.31 |
[백준] 1051번: 숫자 정사각형/ 파이썬 (0) | 2022.07.30 |
[백준] 1543번: 문서 검색/ 파이썬 (0) | 2022.07.29 |
Comments