반례입니다.
6 4 0 0 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 -1
7576번 - 토마토
import sys from collections import deque w, h = map(int,input().split()) room = [[*map(int,sys.stdin.readline().split())]for _ in' '*h] queue = deque([]) day = 0 drow = [-1,1,0,0] dcol = [0,0,-1,1] for row in range(h) : for col in range(w) : if room[row][col] == 1 : queue.append((row,col,0)) while queue : row, col, count = queue.popleft() for j in range(4) : nrow = row + drow[j] ncol = col + dcol[j] if 0 <= nrow < h and 0 <= ncol < w : if room[nrow][ncol] == 0 : room[nrow][ncol] = 1 queue.append((nrow, ncol, count+1)) day = count+1 def check(day) : for i in range(h) : for j in range(w) : if room[i][j] == 0 : return -1 return day print(check(day))
죄송합니다 herdson 님 .. for 문에 break가 안쪽에 있었군요.. 밑은 아예 생각안하고 위만 바꾸다 보니까
처음 코드에는 전역 변수도 지워놨네요 어떻게 돌아간지 의문인데 아무튼 밑으로 바꿔서 해결 됐습니다 감사합니다 ㅠㅠㅠㅠ
넵 당연한 사실을 몇시간동안 다른거 건드리다가 너무 화나서 실수 했습니다 ㅠㅠㅠㅠ... 감사합니다
댓글을 작성하려면 로그인해야 합니다.
stocknuguri 3년 전 1