Search

๋ฐ•์ˆ˜์ง„

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
3600
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
from collections import deque def bfs(maps): q = deque() q.append((0,0)) directions = [(1,0), (-1,0), (0,1), (0,-1)] while q: x, y = q.popleft() for dx, dy in directions: nx = x + dx ny = y + dy if nx < 0 or nx >= len(maps) or ny < 0 or ny >= len(maps[0]): continue if maps[nx][ny] == 1: maps[nx][ny] = maps[x][y] + 1 q.append((nx,ny)) return maps def solution(maps): maps = bfs(maps) result = maps[len(maps)-1][len(maps[0])-1] if result == 1: return -1 else: return result maps1 = [[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]] maps2 = [[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]] print(solution(maps1)) print(solution(maps2))
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
โ€ข
bfs๋กœ ์ง€๋‚˜๋Š”๊ณณ์— ๊ฐ +1์„ ๋”ํ•˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ๋งˆ์ง€๋ง‰์— ๋งต์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์ถœ๋ ฅ
โ€ข
dfs๋กœ ๊ตฌํ˜„ํ• ๋ ค๊ณ  ํ•˜์˜€์œผ๋‚˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ธฐ๋ณด๋‹จ ์ตœ์ข…๊นŒ์ง€ ๊ฐ€๋Š” ๊ธธ์„ ๊ตฌํ•˜๋Š”๊ฒƒ์œผ๋กœ ๋ฐ˜๋ณตํ•˜์—ฌ ๊ณ„์† ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์€ bfs๋กœ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค.