https://www.acmicpc.net/problem/7576
7576๋ฒ: ํ ๋งํ
์ฒซ ์ค์๋ ์์์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๋ ์ ์ M,N์ด ์ฃผ์ด์ง๋ค. M์ ์์์ ๊ฐ๋ก ์นธ์ ์, N์ ์์์ ์ธ๋ก ์นธ์ ์๋ฅผ ๋ํ๋ธ๋ค. ๋จ, 2 โค M,N โค 1,000 ์ด๋ค. ๋์งธ ์ค๋ถํฐ๋ ํ๋์ ์์์ ์ ์ฅ๋ ํ ๋งํ
www.acmicpc.net
๋ฏธ๋ก ์ฐพ๊ธฐ๋ ๋น์ทํ ๋ฌธ์ ๋ค
์ฒ์์ BFS๋ฅผ ๋์์ ๋๋ ค์ผ ํ๋.....? ํ๊ณ ํผ์ ์์ฒญ ๊ณ ๋ฏผํ๋๋ฐ
๊ทธ๋ฅ ํ์ ์๋ ๊ฑธ ์ ๋ถ ๋๋ฆฌ๊ธฐ๋ง ํด๋ ๋๋ค๋ ๊ฑธ ๊นจ๋ฌ์
๋งจ ๋ง์ง๋ง ์ขํ์์ ๋๋๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ ์ต๋๊ฐ!
์ฒ์ ์์์ 1๋ก ํ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ -1 ํด์ฃผ๊ธฐ!
from collections import deque
m, n = map(int, input().split())
tomato = []
for i in range(n):
tomato.append(list(map(int, input().split())))
queue = deque()
for i in range(n):
for j in range(m):
if tomato[i][j] == 1:
queue.append([i, j])
def bfs():
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]
while queue:
x, y = queue.popleft()
for i in range(4):
mx = x + dx[i]
my = y + dy[i]
if mx < 0 or mx >= n or my < 0 or my >= m:
continue
if tomato[mx][my] == 0:
queue.append([mx, my])
tomato[mx][my] = tomato[x][y] + 1
bfs()
for i in range(n):
if 0 in tomato[i]:
res = -1
break
else:
res = max(map(max, tomato)) - 1
print(res)
pypy3๋ก ์ฑ์ ํ์์๋ ๋ถ๊ตฌํ๊ณ ์์ฒญ๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค,,,
from collections import deque
m, n = map(int, input().split())
tomato = []
for i in range(n):
tomato.append(list(map(int, input().split())))
queue = deque()
for i in range(n):
for j in range(m):
if tomato[i][j] == 1:
queue.append([i, j])
def bfs():
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]
while queue:
x, y = queue.popleft()
for i in range(4):
mx = x + dx[i]
my = y + dy[i]
if mx < 0 or mx >= n or my < 0 or my >= m:
continue
if tomato[mx][my] == 0:
queue.append([mx, my])
tomato[mx][my] = tomato[x][y] + 1
bfs()
res = max(map(max, tomato)) - 1
for i in range(n):
for j in range(m):
if tomato[i][j] == 0:
res = -1
break
print(res)
res ๊ฐ ์ ํ๋ ๋ถ๋ถ๋ง ๋ฐ๊ฟจ๋๋ฐ๋ ์๊ฐ์ด ํ ๋จ์ถ๋๋ค
์ฒ์ ํ์๋ ์ฝ๋๋ ๋ด๊ฐ ์ง๋ฉด์๋ ๋นํจ์จ์ ์ด๋ผ๊ณ ์๊ฐํ๊ธด ํ๋ค,,, ใ ใ ํ
'๐ค > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1697: ์จ๋ฐ๊ผญ์ง (Python) (2) | 2022.02.02 |
---|---|
๋ฐฑ์ค 7569: ํ ๋งํ (Python) (0) | 2022.02.02 |
๋ฐฑ์ค 2178: ๋ฏธ๋ก ํ์ (Python) (0) | 2022.02.01 |
๋ฐฑ์ค 1012: ์ ๊ธฐ๋ ๋ฐฐ์ถ (Python) (0) | 2022.01.31 |
๋ฐฑ์ค 2667: ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (Python) (0) | 2022.01.31 |