돌려보면 답은 맞는데 자꾸 시간초과 나네
from collections import deque
dx=[1,-1,0,0]
dy=[0,0,1,-1]
def bfs(x,y):
q=deque([(x,y)])
while q:
a,b=q.popleft()
matrix[a][b]=0
for i in range(4):
x_,y_=a+dx[i],b+dy[i]
if x_<0 or x_>=X or y_<0 or y_>=Y:
continue
if matrix[x_][y_]==1:
q.append((x_,y_))
for _ in range(int(input())):
X,Y,n=map(int,input().split())
matrix=[[0]*69 for i in range(74)]
cnt=0
for i in range(n):
x,y=map(int,input().split())
matrix[x][y]+=1
for i in range(X):
for j in range(Y):
if matrix[i][j]==1:
bfs(i,j)
cnt+=1
print(cnt)
- dc official App
무슨 문젠데
https://www.acmicpc.net/problem/1012
- dc App
코드 잘못 짠듯?
방문처리를 pop하고나서 하지말고 q에 넣을때 하셈
그와중에 배열크기 악랄하네
bfs 는 방문처리를 q넣을때 하는거랑 찾는 값 도달했을때 걍 break걸어서 나가버리는 걸로 시간초과 막아지는 경우 많도라