2578. 빙고
2578번: 빙고
첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로
www.acmicpc.net
- 값 하나 나올때마다 그 행, 열만 확인하는게 아니라
- 모든 행, 열값의 빙고 수를 다 다시 세야함
- → cnt=0으로 초기화하기 때문에
graph=[list(map(int,input().split())) for _ in range(5)]
def check(k):
for i in range(5):
for j in range(5):
if graph[i][j]==k:
return (i,j)
def ysum():
r=0
for i in range(5):
#s는 여기서 초기화 해주는 것 주의
s=0
for j in range(5):
s+=graph[j][i]
if s==0:
r+=1
return r
#5줄 대각선은 (i,i)만 가능
def lsum():
s=0
for i in range(5):
s+=graph[i][i]
return s
def rsum():
s=0
for i in range(5):
s+=graph[4-i][i]
return s
cnt=0
result=0
for i in range(5):
lst=list(map(int,input().split()))
for j in range(5):
if cnt>=3:
continue
cnt=0
result+=1
x,y=check(lst[j])
graph[x][y]=0
#값 하나 나올때마다 그 행, 열만 확인하는게 아니라
#모든 행, 열값의 빙고수를 다 다시 세야함 -> cnt=0으로 초기화하기 때문에
#행 합
for k in range(5):
if sum(graph[k])==0:
cnt+=1
#열 합
cnt+=ysum()
#왼쪽 대각선
if lsum()==0:
cnt+=1
#오른쪽 대각선
if rsum()==0:
cnt+=1
print(result)
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준][BFS] 20207. 달력 (0) | 2023.03.14 |
|---|---|
| [백준][BFS] 16956. 늑대와 양 (0) | 2023.03.14 |
| [백준][DFS][DP] 21317. 징검다리 건너기 (0) | 2023.03.11 |
| [백준] [BFS] 2178. 미로탐색 (0) | 2023.03.11 |
| [백준] 2667. 단지번호 붙이기 (0) | 2023.03.11 |