Tags
- SpringBoot
- ๋ฌธ์์ด
- ๊ทธ๋ํ ์ด๋ก
- ๊ทธ๋ํ ํ์
- stack
- Study
- ๋๋น ์ฐ์ ํ์
- LV2
- ์ํ
- CodingTest
- dfs
- ๊ต์ฌ
- Python
- BFS
- ๊น์ด ์ฐ์ ํ์
- ์ ์๋ก
- DP
- ์ ๋ ฌ
- ์๋ฎฌ๋ ์ด์
- Java
- greedy
- ์๋ฃ๊ตฌ์กฐ
- ๋ฐฑํธ๋ํน
- Brute Force Algorithm
- queue
- PGM
- ๊ตฌํ
- Dynamic Programming
- sort
- BOJ
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1388 : ๋ฐ๋ฅ ์ฅ์ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n x m ๋ฐ๋ฅ์์ ํ์๊ฐ ๋ช ๊ฐ์ธ์ง ์ถ๋ ฅํ๋ค.
- '-'๊ฐ ๊ฐ๋ก๋ก ์ด์ด์ง๊ฑฐ๋, '|'๊ฐ ์ธ๋ก๋ก ์ด์ด์ง๋ฉด ํ๋์ ํ์์ด๋ค.
๐ธ ์ฝ๋ ๐ธ
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 m = sc.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++){ // ์
๋ ฅ ๋ฐ๊ธฐ
arr[i] = sc.next();
}
boolean[][] visit = new boolean[n][m]; // ํด๋น ์ขํ ๋ฐฉ๋ฌธ ์ฌ๋ถ
int answer = 0;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
if (!visit[i][j]) {
answer++;
Queue<Pair> queue = new LinkedList<>(); // ํ
queue.add(new Pair(i, j)); // ํ์ ์ฒซ ๊ฐ
while (!queue.isEmpty()) { // BFS
Pair p = queue.poll();
visit[p.x][p.y] = true;
char c = arr[p.x].charAt(p.y);
if (c == '-') { // '-' ์ผ ๋
// ์ผ์ชฝ์ด '-'
if (p.y > 0 && !visit[p.x][p.y-1] && arr[p.x].charAt(p.y - 1) == '-') {
queue.add(new Pair(p.x, p.y - 1));
}
// ์ค๋ฅธ์ชฝ์ด '-'
if (p.y < m-1 && !visit[p.x][p.y+1] && arr[p.x].charAt(p.y + 1) == '-') {
queue.add(new Pair(p.x, p.y + 1));
}
}else { // '|' ์ผ ๋
// ์์ชฝ์ด '|'
if (p.x > 0 && !visit[p.x-1][p.y] && arr[p.x-1].charAt(p.y) == '|') {
queue.add(new Pair(p.x-1, p.y));
}
// ์๋์ชฝ์ด '|'
if (p.x < n-1 && !visit[p.x+1][p.y] && arr[p.x+1].charAt(p.y) == '|') {
queue.add(new Pair(p.x+1, p.y));
}
}
}
}
}
}
System.out.println(answer);
}
private static class Pair {
int x, y;
private Pair(int x, int y) {
this.x = x;
this.y = y;
}
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ขํ๋ Pair ํด๋์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.
- 2์ค for๋ฌธ์ผ๋ก ํ์ผ์ ๋ชจ๋ ๊ฒ์ฌํ๋ฉฐ, ์ด์ด์ง ํ์ผ๋ค์ BFS๋ก ํ์ํด visit์ true๋ก ๋ฐ๊ฟ์ค๋ค.
- ํ์ ๋จ์ ์์๊ฐ ์์ผ๋ฉด ์ด์ด์ง ํ์ผ๋ค์ ๋ชจ๋ ์ฐพ์ ๊ฒ == ํ๋์ ํ์
๐ธ end ๐ธ
- BFS๋ฅผ ์ฐ์ตํ๊ธฐ ์ข์ ๋ฌธ์ ์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_9625 : BABBA (0) | 2022.11.24 |
---|---|
BOJ_3182 : ํ๋์ด๋ ๊ณต๋ถ๊ฐ ํ๊ธฐ ์ซ์ด! (0) | 2022.11.22 |
BOJ_16173 : ์ ํ์ ์ฉฐ๋ฆฌ (Small) (0) | 2022.11.21 |
BOJ_8979 : ์ฌ๋ฆผํฝ (0) | 2022.11.20 |
BOJ_9339 : ๋ง๋ผํ ๋ (0) | 2022.11.19 |