Tags
- ๋ฐฑํธ๋ํน
- Python
- Brute Force Algorithm
- CodingTest
- BFS
- stack
- DP
- ๊ต์ฌ
- queue
- Study
- greedy
- ๊ทธ๋ํ ์ด๋ก
- sort
- ์๋ฎฌ๋ ์ด์
- ๋ฌธ์์ด
- ๊ตฌํ
- Java
- ๊ทธ๋ํ ํ์
- Dynamic Programming
- dfs
- BOJ
- ๋๋น ์ฐ์ ํ์
- SpringBoot
- ์๋ฃ๊ตฌ์กฐ
- ์ ๋ ฌ
- LV2
- ๊น์ด ์ฐ์ ํ์
- PGM
- ์ํ
- ์ ์๋ก
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_16173 : ์ ํ์ ์ฉฐ๋ฆฌ (Small) ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n x n ํฌ๊ธฐ์ ๊ฒ์ํ์์ ์ผ์ชฝ ์ (0,0)๋ถํฐ ํ์ํ๋ฉฐ ์ค๋ฅธ์ชฝ ์๋ (n-1, n-1)์ ๋์ฐฉํ ์ ์๋์ง ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
- ํ์ฌ ๊ฒ์ํ ์์น์ ๊ฐ๋งํผ ์ค๋ฅธ์ชฝ ํน์ ์๋์ชฝ ํ ๋ฐฉํฅ์ผ๋ก ์ ํํ ๊ทธ ๊ฐ๋งํผ ์์ง์ผ ์ ์๋ค.
- ํ์ ๋์ด๊ฐ๋ฉด ์๋๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] arr = new int[n][n];
for (int i = 0; i < n; i++){ // ์
๋ ฅ ๋ฐ๊ธฐ
for (int j = 0; j < n; j++){
arr[i][j] = sc.nextInt();
}
}
boolean[][] visit = new boolean[n][n]; // ํด๋น ์ขํ ๋ฐฉ๋ฌธ ์ฌ๋ถ
Queue<Pair> queue = new LinkedList<>(); // ํ
queue.add(new Pair(0,0)); // ํ์ ์ฒซ ๊ฐ
boolean goal = false;
while (!queue.isEmpty()) { // ํ ๋ฐ๋ณต ๊ณ์ฐ
Pair p = queue.poll();
visit[p.x][p.y] = true;
int len = arr[p.x][p.y];
if (len == -1){
goal = true;
break;
}
if (p.x+len < n && visit[p.x+len][p.y] == false){
queue.add(new Pair(p.x+len, p.y));
}
if (p.y+len < n && visit[p.x][p.y+len] == false){
queue.add(new Pair(p.x, p.y+len));
}
}
if (goal) {
System.out.println("HaruHaru");
} else {
System.out.println("Hing");
}
}
private static class Pair {
int x, y;
private Pair(int x, int y) {
this.x = x;
this.y = y;
}
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- BFS๋ฅผ ์ฌ์ฉํด์ ๊ฒ์ํ์ ํ์ํ๋ค.
- ํ์ ์์๋ Pairํด๋์ค๋ฅผ ์ง์ ๋ง๋ค์ด x, y ์ขํ๊ฐ์ ์ฌ์ฉํ๋ค.
- ์ค๋ฅธ์ชฝ ํน์ ์๋์ชฝ์ผ๋ก ์์ง์์๋ ๊ฒ์ํ ๋ด์ ๋ฒ์์ธ์ง, ๋ฐฉ๋ฌธํ๋ ์ขํ์ธ์ง ํ์ธํ๋ค.
- ๋ฐ๋ฅ์ ๊ฐ์ด -1์ธ ์ขํ์ ๋์ฐฉํ๋ฉด ์ฑ๊ณต์ด๊ณ , ํ์ ์์๊ฐ ํ๋๋ ๋จ์ง ์์๋ ๊น์ง ๋์ฐฉํ์ง ๋ชปํ๋ฉด ์คํจ์ด๋ค.
๐ธ end ๐ธ
- BFS๋ฅผ ์ค๋๋ง์ ์ฐ์ตํด ๋ณผ ์ ์์๋ ์ข์ ๋ฌธ์ ์๋ค.
- visit์ ์ฌ์ฉํ๋๊ฑธ ๊น๋นกํด์ 1ํ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฌ์๋ค.
- n์ ๋ฒ์๊ฐ 3๊น์ง์ด๋ฏ๋ก Brute Force๋ DFS๋ฑ ์ฐ์ตํด ๋ณด๊ธฐ ์ฌ์ด ๋ฌธ์ ์ด๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_3182 : ํ๋์ด๋ ๊ณต๋ถ๊ฐ ํ๊ธฐ ์ซ์ด! (0) | 2022.11.22 |
---|---|
BOJ_1388 : ๋ฐ๋ฅ ์ฅ์ (0) | 2022.11.21 |
BOJ_8979 : ์ฌ๋ฆผํฝ (0) | 2022.11.20 |
BOJ_9339 : ๋ง๋ผํ ๋ (0) | 2022.11.19 |
BOJ_2704 : ์ด์ง๋ฒ ์๊ณ (0) | 2022.11.18 |