BOJ - 2589 - 보물섬

Updated:

import sys
from collections import deque

def BFS(Map, i, j, R, C):
    dx = [0, 0, 1, -1]
    dy = [1, -1, 0, 0]
    Q = deque()
    Q.append((i, j, 0))
    Check = [[False] * C for _ in range(R)]
    Check[i][j] = True
    distance = 0

    while Q:
        x, y, dist = Q.popleft()
        for d in range(4):
            nx, ny = x + dx[d], y + dy[d]
            if 0 <= nx < R and 0 <= ny < C:
                if Map[nx][ny] == 'L' and Check[nx][ny] is False:
                    Q.append((nx, ny, dist + 1))
                    Check[nx][ny] = True
                    distance = max(dist + 1, distance)
    return distance


def solution():
    R, C = map(int, sys.stdin.readline().split())
    Map = []

    for _ in range(R):
        Map.append(list(str(sys.stdin.readline().strip())))

    ret = 0
    for i in range(R):
        for j in range(C):
            if Map[i][j] == 'L':
                ret = max(ret, BFS(Map, i, j, R, C))

    print(ret)

solution()

https://www.acmicpc.net/problem/2589

Categories:

Updated:

Leave a comment