Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 카카오 #프로그래머스 #python #코딩테스트 #오픈채팅방
- 백준 #백준알고리즘 #알고리즘 #코딩테스트 #코딩테스트준비 #코테준비 #백준2110 #python #문제풀이
- 프로그래머스 #네트워크 #c++ #코딩테스트 #코테 #코테준비 #dfs
- 프로그래머스 #python #코딩테스트 #코테공부 #알고리즘 #dict
- 프로그래머스 #sql #mysql #코딩테스트
- 동
- 백준 #백준2217 #백준로프 #python
- 그리디알고리즘 #그리디 #백준 #우선순위큐 #최소힙 #최대힙 #알고리즘 #코딩테스트 #python
- 프로그래머스 #python #2021카카오 #카카오코테 #카카오인턴쉽
- 프로그래머스 #NULL 처리하기
- 프로그래머스 #c++ #코딩테스트
- 카카오 코테
- 백준 #이거다시풀기
Archives
- Today
- Total
say repository
[프로그래머스] 게임 맵 최단거리 python 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/1844
코딩테스트 연습 - 게임 맵 최단거리
[[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1
programmers.co.kr
from collections import deque
def solution(maps):
dx = [-1, 0, 1, 0]
dy = [0, -1, 0, 1]
n = len(maps)
m = len(maps[0])
visited = [[-1]*m for _ in range(n)]
q = deque()
q.append([0,0])
visited[0][0] = 1
while q:
x, y = q.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0<=nx<n and 0<=ny<m and maps[nx][ny] == 1: # 벽이 없으면
if visited[nx][ny] == -1:
visited[nx][ny] = visited[x][y] + 1
q.append([nx,ny])
return visited[-1][-1]
풀이
bfs 를 사용해서 푸는 간단한 풀이다.
다만, 최단경로의 최소값을 구해야되는데, 도달하지 못하면 -1을 리턴해야하니까
처음에 visited 방문처리 초기값을 평소 주던 0이 아닌 -1로 준다.
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 행렬의 곱셈 python (0) | 2022.04.13 |
---|---|
[프로그래머스] H-Index python (*) (0) | 2022.04.13 |
[프로그래머스] 짝지어 제거하기 python (*) (0) | 2022.04.12 |
[프로그래머스] 피보나치 수 Python (0) | 2022.04.11 |
[프로그래머스] 거리두기 확인하기 python (*) (0) | 2022.04.10 |