본문 바로가기
Problem Solving/BOJ

[BOJ][Python]17198번 풀이

by NoiB 2022. 5. 25.
반응형

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

 

17198번: Bucket Brigade

The input file contains 10 rows each with 10 characters, describing the layout of the farm. There are exactly one barn, one lake, and one rock.

www.acmicpc.net

from collections import deque

def bfs(r,c):
    q = deque()
    q.append((r,c))
    t[r][c]=0
    while q:
        r,c = q.popleft()
        for dr,dc in d:
            R,C = r+dr, c+dc
            if 0<=R<10 and 0<=C<10:
                if t[R][C] == 'L':
                    return t[r][c]
                if t[R][C] == '.':
                    q.append((R,C))
                    t[R][C] = t[r][c]+1

t = [list(input()) for _ in range(10)]#공백 아니어도 split
d = [(-1,0),(1,0),(0,-1),(0,1)]
for i in range(10):
    for j in range(10):
        if t[i][j] == 'B':
            cnt = bfs(i,j)
print(cnt)

이번 문제는 bfs인데요. 연습이 안되어있다보니 bfs는 기본 문제라도 상당히 어렵네요. 그리고 dfs와 달리 코드가 직관적이지 않은 것도 한 몫 하는것 같습니다.

반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ][Python]2606번 풀이  (0) 2022.05.28
[BOJ][Python]1010번 풀이  (0) 2022.05.27
[BOJ][Python]24416번 풀이  (0) 2022.05.25
[BOJ][Python]1388번 풀이  (0) 2022.05.24