Tags
- PGM
- Brute Force Algorithm
- ์๋ฃ๊ตฌ์กฐ
- Python
- queue
- ๊น์ด ์ฐ์ ํ์
- ๋ฌธ์์ด
- CodingTest
- dfs
- ์๋ฎฌ๋ ์ด์
- Dynamic Programming
- ์ํ
- Java
- ๋ฐฑํธ๋ํน
- ๋๋น ์ฐ์ ํ์
- ๊ต์ฌ
- ๊ทธ๋ํ ํ์
- greedy
- BOJ
- stack
- SpringBoot
- Study
- ๊ตฌํ
- sort
- BFS
- DP
- LV2
- ๊ทธ๋ํ ์ด๋ก
- ์ ๋ ฌ
- ์ ์๋ก
Archives
๊ธฐ๋ก๋ฐฉ
Lv.2 : ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n x m ๋งต์์ (0, 0) ๋ถํฐ (n-1, m-1) ๊น์ง ์ด๋ํ๋๋ฐ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐํํ๋ค.
- ๋ง์ฝ ๋๋ฌํ ์ ์๋ค๋ฉด -1์ ๋ฐํํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์ ํ์ ์ธ ์ต๋จ๊ฑฐ๋ฆฌ ๋ฌธ์ ๋ก ๋๋น ์ฐ์ ํ์(BFS)๋ก ํ์ดํ ์ ์๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.ArrayDeque;
import java.util.Queue;
class Solution {
private static class Point {
private int row, col;
public Point(int row, int col) {
this.row = row;
this.col = col;
}
}
public int solution(int[][] maps) {
int[] dx = {-1, 0, 1, 0};
int[] dy = {0, 1, 0, -1};
int cnt = 1;
int findR = maps.length - 1;
int findC = maps[0].length - 1;
Queue<Point> que = new ArrayDeque<>();
boolean[][] visited = new boolean[maps.length][maps[0].length];
que.add(new Point(0, 0));
visited[0][0] = true;
while (!que.isEmpty()) {
int size = que.size();
for (int i = 0; i < size; i++) {
Point point = que.poll();
if (point.row == findR && point.col == findC) {
return cnt;
}
for (int j = 0; j < dx.length; j++) {
int newR = point.row + dx[j];
int newC = point.col + dy[j];
if (0 <= newR && newR <= findR && 0 <= newC && newC <= findC && !visited[newR][newC] && maps[newR][newC] == 1) {
visited[newR][newC] = true;
que.add(new Point(newR, newC));
}
}
}
cnt++;
}
return -1;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- BFS๋ฅผ์ํด ์ขํ๋ฅผ ํ๋ก ๊ด๋ฆฌํด์ผ ํ๋ฏ๋ก, Point ํด๋์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.
- ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ BFS ๊ณผ์ ์์ ํ ๋ฒ์ด๋ผ๋ ๋ฐฉ๋ฌธํ ์ขํ๋ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ๊ฒ์ด๋ฏ๋ก ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ํตํด ์ค๋ณต ๊ฒ์ฌ๋ฅผ ๋ฐฉ์งํ๋ค.
- ํ์ฌ ํ ์ฌ์ด์ฆ๋งํผ ๋ฐ๋ณตํด์ ํ์ฌ ์์ง์ธ ํ์๋ฅผ ๊ด๋ฆฌํ๋ค.
๐ธ end ๐ธ
- BFS ๋ฌธ์ ๋ฅผ ์ค๋๋ง์ ํ์ด๋ดค๋๋ฐ ๊ฐ๋จํ ํ์ดํ ์ ์์๋ค.
- ์ฑ์ ์ ํจ์จ์ฑ ํ ์คํธ ๋ถ๋ถ์ด ์๋๋ฐ ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ํ์ง ์์ผ๋ฉด ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.2 : ์ฃผ์๊ฐ๊ฒฉ (0) | 2023.11.23 |
---|---|
Lv.2 : ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (0) | 2023.11.22 |
Lv.2 : n์ง์ ๊ฒ์ (0) | 2023.11.11 |
Lv.2 : ์์ถ (0) | 2023.11.09 |
Lv.2 : k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.11.08 |