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]
try:
if matrix[x_][y_]==1:
q.append((x_,y_))
matrix[x_][y_]=0
except: continue
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)
틀렸습니다 뜸
bfs로 해보려는데 잘 안됨 bfs 처음해보는거라서 자세하게 알려주시면 감사하겠읍니다
https://www.acmicpc.net/problem/1018
clr={0:'B',1:'W','B':0,'W':1}
Y,X=map(int,input().split())
matrix=[[]*X for _ in range(Y)]
ans=32
def clralt(y,x):
cnt=0
for i in range(8):
for j in range(8):
if (i+j)//2==matrix[y+i][x+j]:
cnt+=1
return min(cnt,64-cnt)
for i in range(Y):
n=input()
for j in range(X):
matrix[i][j].append(clr[n[j]])
for i in range(Y-7):
for j in range(X-7):
a=clralt(i,j)
if a<ans:
ans=a
print(ans)
인덱스에러뜸
이것도 비슷한느낌으로 해보려는데 잘 안되네요
- dc official App
위에껀 try except만 일반 조건문으로 바꾸니까 됨 왜 그런진 모르겠다
첫번째 코드는 if matrix[x_][y_]==1: 에서 x_나 y_가 범위 벗어나서 오류 생기는 걸 예외처리하기 위해 만든 것 같은데 언어가 파이썬이라 -1같은 값 나오면 오류 발생 안 하고 이상한 값에 방문처리 될 것 같아 한 번 해볼래?
파이썬에서 -1은 리스트에서 마지막으로 1번째를 의미하잖어
아 맞네
앗 감사합니당 - dc App