본문 바로가기
알고리즘/dfs,bfs

[파이썬🐍] 백준 2178 : 미로 탐색

by 코딩개미뚠뚠 2021. 4. 7.
반응형

stdin.readline()을 사용하는 것이 아직 익숙하지 않다.

정확한 정의를 찾아보다가 알게된 것 -> stdin은 standard input의 약자

readline() : 한 줄씩 읽을 때 사용

rstrip() : 오른쪽 공백이나 문자열 제거

 

from sys import stdin
n, m = map(int, stdin.readline().split())
matrix = [stdin.readline().rstrip() for _ in range(n)]
visited = [[0]*m for _ in range(n)]
dx,dy = [-1,1,0,0],[0,0,-1,1]

queue = [(0,0)]
visited[0][0] = 1
while queue:
    x,y=queue.pop(0)
    if x == n-1 and y == m-1:
        print(visited[x][y])
        break
    for i in range(4):
        nx = x+dx[i]
        ny = y+dy[i]
        if 0<=nx<n and 0 <=ny<m:
            if visited[nx][ny] == 0 and matrix[nx][ny] == '1':
                visited[nx][ny] = visited[x][y]+1
                queue.append((nx,ny))

 

matrix = [stdin.readline().rstrip() for _ in range(n)]
visited = [[0]*m for _ in range(n)]

위 부분에서 리스트컴프리헨션을 사용해서 구현했다.

책에서 리스트컴프리헨션이 효율성도 좋고 빠르다고 했다.  그리고 더 깔끔한 느낌??

앞으로 습관 들여야지~!~!

반응형

댓글