Skip to content

Commit

Permalink
post: [9주차_노경민] 게임 맵 최단거리
Browse files Browse the repository at this point in the history
  • Loading branch information
gengminy committed Dec 17, 2023
1 parent 901721e commit 1e30e49
Showing 1 changed file with 95 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
title: 🦊 게임 맵 최단거리
author: gengminy
date: 2023-12-17 12:00:00 +09:00
categories: [알고리즘, 게임 맵 최단거리]
tags: [알고리즘, 프로그래머스, level2, 구현, 9주차, 노경민]
render_with_liquid: false
math: true
---

## 1. 문제 링크

[게임 맵 최단거리](https://school.programmers.co.kr/learn/courses/30/lessons/1844)

<br>

## 2. 코드

```python
def solution(maps):
N = len(maps)
M = len(maps[0])

delta = [
(0, 1), (0, -1), (1, 0), (-1, 0)
]

visit = []
for i in range(N):
visit.append([0] * M)

q = []
q.append((0, 0))

while q:
x, y = q.pop(0)

for dx, dy in delta:
nx = x + dx
ny = y + dy

if 0 <= nx < M and 0 <= ny < N and maps[ny][nx] == 1 and not visit[ny][nx]:
visit[y][x] = 1
q.append((nx, ny))
maps[ny][nx] = maps[y][x] + 1

if maps[N - 1][M - 1] == 1:
return -1
return maps[N - 1][M - 1]
```

- 정확성 테스트

채점을 시작합니다.
정확성 테스트
테스트 1 〉 통과 (0.03ms, 10.2MB)
테스트 2 〉 통과 (0.02ms, 10.3MB)
테스트 3 〉 통과 (0.04ms, 10.3MB)
테스트 4 〉 통과 (0.03ms, 10.2MB)
테스트 5 〉 통과 (0.03ms, 10.2MB)
테스트 6 〉 통과 (0.04ms, 10.2MB)
테스트 7 〉 통과 (0.06ms, 10.3MB)
테스트 8 〉 통과 (0.04ms, 10.2MB)
테스트 9 〉 통과 (0.05ms, 10.4MB)
테스트 10 〉 통과 (0.05ms, 10.2MB)
테스트 11 〉 통과 (0.03ms, 10.2MB)
테스트 12 〉 통과 (0.02ms, 10.2MB)
테스트 13 〉 통과 (0.04ms, 10.4MB)
테스트 14 〉 통과 (0.03ms, 10.4MB)
테스트 15 〉 통과 (0.03ms, 10.2MB)
테스트 16 〉 통과 (0.02ms, 10.2MB)
테스트 17 〉 통과 (0.05ms, 10.4MB)
테스트 18 〉 통과 (0.02ms, 10.3MB)
테스트 19 〉 통과 (0.01ms, 10.2MB)
테스트 20 〉 통과 (0.01ms, 10.4MB)
테스트 21 〉 통과 (0.01ms, 10.2MB)
효율성 테스트
테스트 1 〉 통과 (9.43ms, 10.3MB)
테스트 2 〉 통과 (2.92ms, 10.5MB)
테스트 3 〉 통과 (6.36ms, 10.3MB)
테스트 4 〉 통과 (4.31ms, 10.3MB)
채점 결과
정확성: 69.9
효율성: 30.1
합계: 100.0 / 100.0

<br>

## 3. 해설

전형적인 BFS 길찾기 문제

효율성 검사에서 자꾸 시간 초과가 나서 map 자체에 count 를 저장하는 방향으로 바꿈

count 를 하나하나 세는 방법으로는 해결할 수 없는듯

0 comments on commit 1e30e49

Please sign in to comment.