본문 바로가기

Coding Test/스터디

[BFS&DFS] 프로그래머스_미로찾기

https://school.programmers.co.kr/learn/courses/30/lessons/1844

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

from collections import deque

def bfs(x, y, maps):
    dx = [-1, 1, 0, 0]
    dy = [0, 0, -1, 1]

    queue = deque()
    queue.append((x, y))

    while(queue):
        x, y = queue.popleft()

        for i in range(4):
            nx = x + dx[i]
            ny = y + dy[i]

            if nx < 0 or ny < 0 or nx >= len(maps) or ny >= len(maps[0]):
                continue
            if maps[nx][ny] == 0:
                continue
            if maps[nx][ny] == 1:
                maps[nx][ny] = maps[x][y] + 1
                queue.append((nx, ny))

    if maps[-1][-1] == 1:
        return -1

    return maps[-1][-1]


def solution(maps):
    answer = 0
    answer = bfs(0, 0, maps)
    return answer

'Coding Test > 스터디' 카테고리의 다른 글

[BFS&DFS] 백준_2583_영역구하기  (0) 2023.11.15
[DFS&BFS] 백준_1303_전쟁전투  (0) 2023.11.15
[1주차] 스터디 시작 및 완전탐색  (0) 2023.11.15