Search
๐Ÿป

๊น€๊ธฐํ—Œ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
900
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
#include<vector> #include<queue> #include<utility> #include<algorithm> using namespace std; typedef pair<int, int>p; queue<p>q; int dx[4] = { 0,1,0,-1 }; int dy[4] = { 1,0,-1,0 }; int check[105][105]; int solution(vector<vector<int> > maps) { int answer; int n = maps.size(), m = maps[0].size(); q.push({ 0,0 }); //bfs ์‹œ์ž‘ check[0][0] = 1; while (!q.empty()) { p now = q.front(); q.pop(); int x = now.first, y = now.second; for (int i = 0; i < 4; i++) { int nx = x + dx[i], ny = y + dy[i]; if (nx < 0 || n <= nx || ny < 0 || m <= ny || !maps[nx][ny])continue; if (!check[nx][ny]) { check[nx][ny] = check[x][y] + 1; q.push({ nx,ny }); } } } answer = check[n - 1][m - 1]; return !answer ? -1 : answer; }
C++
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๋ฌธ์ œ
1.
0,0 ์—์„œ ์ถœ๋ฐœ
2.
์ƒ, ํ•˜, ์ขŒ, ์šฐ๋กœ ์›€์ง์ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์›€์ง์ด๋ฉด์„œ 0,0์œผ๋กœ๋ถ€ํ„ฐ ๊ฑฐ๋ฆฌ ๊ธฐ๋ก
a.
ex) (1, 0) ์—์„œ (1, 1)๋กœ ์›€์ง์˜€๋‹ค๋ฉด (0, 0)์—์„œ (1, 1)๊นŒ์ง€ ๊ฑฐ๋ฆฌ = (0, 0)์—์„œ (1, 0)๊นŒ์ง€ ๊ฑฐ๋ฆฌ +1
3.
bfs๊ฐ€ ๋๋‚˜๋ฉด n-1, m-1๊นŒ์ง€ ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅ
a.
๋„๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค๋ฉด -1 ์ถœ๋ ฅ
b.
n๊ณผ m์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค