반응형
코딩테스트 연습 - 게임 맵 최단거리 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<문제 풀이>
- 기본적인 BFS/DFS문제이다.
<Code>
def bfs(maze, n, m):
visited = [[0] * m for _ in range(n)]
q = []
q.append([0, 0])
visited[0][0] = 1
dy = [-1, 1, 0, 0]
dx = [0, 0, -1, 1]
while q:
st = q.pop(0)
for k in range(4):
i, j = st[0] + dy[k], st[1] + dx[k]
if 0 <= i <= n - 1 and 0 <= j <= m - 1 and maze[i][j] != 0 and visited[i][j] == 0:
q.append([i, j])
visited[i][j] = visited[st[0]][st[1]] + 1
if [i, j] == [n - 1, m - 1]:
return visited[i][j]
return -1
def solution(maze):
n = len(maze)
m = len(maze[0])
answer = bfs(maze, n, m)
return answer
※ 잘못된 점, 개선점 등이 있다면 언제든 댓글로 알려주시면 감사하겠습니다.
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/010.gif)
반응형
'Alogorithm > programmers' 카테고리의 다른 글
[programmers] Lv2 미로 탈출 - Python (0) | 2023.04.04 |
---|---|
[programmers] Lv3 표 병합 - Python (0) | 2023.03.31 |
[programmers] Lv2 과제 진행하기 - Python & Java (0) | 2023.03.31 |
[programmers] Lv2 시소 짝꿍 - Python (0) | 2023.03.30 |
[programmers] Lv2 택배 배달과 수거하기 - Python (0) | 2023.03.29 |