Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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
Tags more
Archives
Today
Total
관리 메뉴

쓰고싶은거 써요

백준 파이썬 2178 미로 탐색 본문

백준 python 기록

백준 파이썬 2178 미로 탐색

우히힝 2021. 9. 23. 20:11

백준 링크:https://www.acmicpc.net/problem/2178

 

2178번: 미로 탐색

첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.

www.acmicpc.net

 

BFS로 풀이하였다. 보통 최단거리를 계산하는 문제는 BFS로 해야 쾌적하다고 들었다.

 

BFS로 자리를 찾아가며

 

첫 자리가 S[0][0]이 1이라면 다음 자리는 2이므로 S[1][0]은 S[0][0] + 1 로 계산하였다.

복사한 예제의 수열 s를 출력해보면

순서따라 숫자가 잘 출력된것을 볼 수 있다.

n,m=map(int,input().split())

s=[list(input()) for i in range(n)]

nx=[-1,1,0,0]
ny=[0,0,-1,1]

visited=[[0,0]]
s[0][0] = 1


while visited:
    a,b=visited[0][0],visited[0][1]

    del visited[0]

    for i in range(4):
        xx=a+nx[i]
        yy=b+ny[i]
        if n > xx >= 0 and m > yy >= 0:
            if s[xx][yy] == '1':
                visited.append([xx,yy])
                s[xx][yy] = s[a][b] + 1
print(s[n-1][m-1])

'백준 python 기록' 카테고리의 다른 글

백준 파이썬 7562 나이트의 이동  (0) 2021.09.25
백준 파이썬 7576 토마토  (0) 2021.09.24
백준 파이썬 11279 최대 힙  (0) 2021.09.22
백준 파이썬 2407 조합  (0) 2021.09.19
파이썬 백준 1965 상자넣기  (0) 2021.09.19
Comments