๐ข ๋ณด๋ฌผ์ฌ
1. ๋ฌธ์ ๋งํฌ
2. ์ฝ๋
PyPy3
116128KB
1008ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
"""
[2589] ๋ณด๋ฌผ์ฌ
๐ ๋ฌธ์
๋ณด๋ฌผ์ฌ ์ง๋๋ฅผ ๋ฐ๊ฒฌํ ํํฌ ์ ์ฅ์ ๋ณด๋ฌผ์ ์ฐพ์๋์ฐ๋ค.
๋ณด๋ฌผ์ฌ ์ง๋๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ง์ฌ๊ฐํ ๋ชจ์์ด๋ฉฐ ์ฌ๋ฌ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค.
๊ฐ ์นธ์ ์ก์ง(L)๋ ๋ฐ๋ค(W)๋ก ํ์๋์ด ์๋ค. ์ด ์ง๋์์ ์ด๋์ ์ํ์ข์ฐ๋ก ์ด์ํ ์ก์ง๋ก๋ง ๊ฐ๋ฅํ๋ฉฐ,
ํ ์นธ ์ด๋ํ๋๋ฐ ํ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
๋ณด๋ฌผ์ ์๋ก ๊ฐ์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ก ์ด๋ํ๋๋ฐ ์์ด ๊ฐ์ฅ ๊ธด ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์ก์ง ๋ ๊ณณ์ ๋๋์ด ๋ฌปํ์๋ค.
์ก์ง๋ฅผ ๋ํ๋ด๋ ๋ ๊ณณ ์ฌ์ด๋ฅผ ์ต๋จ ๊ฑฐ๋ฆฌ๋ก ์ด๋ํ๋ ค๋ฉด ๊ฐ์ ๊ณณ์ ๋ ๋ฒ ์ด์ ์ง๋๊ฐ๊ฑฐ๋, ๋ฉ๋ฆฌ ๋์๊ฐ์๋ ์ ๋๋ค.
๋ณด๋ฌผ ์ง๋๊ฐ ์ฃผ์ด์ง ๋, ๋ณด๋ฌผ์ด ๋ฌปํ ์๋ ๋ ๊ณณ ๊ฐ์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ก ์ด๋ํ๋ ์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐ ์
๋ ฅ
์ฒซ์งธ ์ค์๋ ๋ณด๋ฌผ ์ง๋์ ์ธ๋ก์ ํฌ๊ธฐ์ ๊ฐ๋ก์ ํฌ๊ธฐ๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค.
์ด์ด L๊ณผ W๋ก ํ์๋ ๋ณด๋ฌผ ์ง๋๊ฐ ์๋์ ์์ ๊ฐ์ด ์ฃผ์ด์ง๋ฉฐ, ๊ฐ ๋ฌธ์ ์ฌ์ด์๋ ๋น ์นธ์ด ์๋ค.
๋ณด๋ฌผ ์ง๋์ ๊ฐ๋ก, ์ธ๋ก์ ํฌ๊ธฐ๋ ๊ฐ๊ฐ 50์ดํ์ด๋ค.
๐ ์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ณด๋ฌผ์ด ๋ฌปํ ์๋ ๋ ๊ณณ ์ฌ์ด๋ฅผ ์ต๋จ ๊ฑฐ๋ฆฌ๋ก ์ด๋ํ๋ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
"""
from collections import deque
# ๋ณด๋ฌผ ์ง๋์ ์ธ๋ก์ ํฌ๊ธฐ์ ๊ฐ๋ก์ ํฌ๊ธฐ
N, M = map(int, input().split())
good = []
graph = []
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
for i in range(N):
temp = list(map(str, input()))
for j in range(len(temp)):
# ๊ฐ ์นธ์ ์ก์ง(L)๋ ๋ฐ๋ค(W)
if temp[j] == 'L':
graph.append((i, j))
good.append(temp)
def bfs(r, c):
queue = deque([[r, c, 0]])
visited[r][c] = True
while queue:
r, c, distance = queue.popleft()
for i in range(4):
nx = r + dx[i]
ny = c + dy[i]
if 0 <= nx < N and 0 < ny < M :
visited[nx][ny] = True
queue.append([nx, ny, distance + 1])
return distance
result = 0
for i in range(len(graph)):
visited = [[False] * M for _ in range(N)]
distance = bfs(graph[i][0], graph[i][1])
if result < distance:
result = distance
print(result)
3. ํด์ค
This post is licensed under CC BY 4.0 by the author.