dx=[1,-1,0,0]
dy=[0,0,1,-1]
def bfs(x,y):
q=[(x,y)]
while q:
a,b=q.pop(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_))
matrix[x_][y_]=0
for _ in range(int(input())):
X,Y,n=map(int,input().split())
matrix=[[0]*Y for i in range(X)]
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)
try부분 조건문으로 고쳤는데도대체이거왜안되는건지이해할수가없는데이게왜틀렸지
- dc official App
matrix[x_][y_]=0 이부분을 matrix[a][b]=0 으로. 다음에 이동할 위치를 0으로 만들게 아니라 지금도착한 지점을 0 으로 만들고 다음지점으로 넘어갈려는거 아님? - dc App
어차피 도착하기 전에 matrix[x_][y_]=0으로 바꿔놓아서 똑같은거 아님? - dc App
그리고 해보니까 시간초과 뜨네 - dc App
리스트는 pop(0)하면 시간 많이 잡아먹는다 deque popleft() 써라
ㅇㅎ 팁감사 - dc App
아 처음이동한 지점에 그냥 0 처리해주면되겠네 그리고 pop(0) 하면 시간오래걸릴껄 - dc App