Skip to content

Commit c439238

Browse files
committed
[BFS] baekjoon-14226
1 parent 15e3141 commit c439238

File tree

3 files changed

+74
-0
lines changed

3 files changed

+74
-0
lines changed

โ€ŽREADME.md

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
| 07 | | [Baekjoon-1525 ํผ์ฆ](./src/BFS/P1525) | |
4343
| 08 | | [Baekjoon-7576 ํ† ๋งˆํ† ](./src/BFS/P7576) | |
4444
| 09 | | [Baekjoon-1697 ์ˆจ๋ฐ”๊ผญ์งˆ](./src/BFS/P1697) | |
45+
| 10 | | [Baekjoon-14226 ์ด๋ชจํ‹ฐ์ฝ˜](./src/BFS/P14226) | |
4546

4647
## Simulation
4748

โ€Žsrc/BFS/P14226/Main.java

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package BFS.P14226;
2+
3+
import java.util.*;
4+
5+
public class Main {
6+
7+
static int S;
8+
static Queue<State> q = new LinkedList<>();
9+
static boolean[][] visited = new boolean[10001][10001];
10+
11+
public static void main(String[] args) {
12+
Scanner sc = new Scanner(System.in);
13+
S = sc.nextInt();
14+
15+
int ans = 0;
16+
q.offer(new State(1, 0, 0));
17+
while (!q.isEmpty()) {
18+
State s = q.poll();
19+
visited[s.screen][s.clip] = true;
20+
21+
if (s.screen == S) {
22+
ans = s.time;
23+
break;
24+
} else if (!visited[s.screen][s.screen]) {
25+
q.add(new State(s.screen, s.screen, s.time + 1));
26+
}
27+
28+
if (s.screen + s.clip == S) {
29+
ans = s.time + 1;
30+
break;
31+
} else if (s.clip != 0 && !visited[s.screen + s.clip][s.clip]) {
32+
q.add(new State(s.screen + s.clip, s.clip, s.time + 1));
33+
}
34+
35+
if (s.screen - 1 == S) {
36+
ans = s.time + 1;
37+
break;
38+
} else if (s.screen >= 1 && !visited[s.screen - 1][s.clip]) {
39+
q.add(new State(s.screen - 1, s.clip, s.time + 1));
40+
}
41+
}
42+
43+
System.out.println(ans);
44+
}
45+
}
46+
47+
class State {
48+
int screen;
49+
int clip;
50+
int time;
51+
52+
public State(int screen, int clip, int time) {
53+
this.screen = screen;
54+
this.clip = clip;
55+
this.time = time;
56+
}
57+
58+
@Override
59+
public String toString() {
60+
return "State{" +
61+
"screen=" + screen +
62+
", clip=" + clip +
63+
", time=" + time +
64+
'}';
65+
}
66+
}

โ€Žsrc/BFS/P14226/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## [baekjoon-14226] ์ด๋ชจํ‹ฐ์ฝ˜
2+
3+
![image](https://user-images.githubusercontent.com/22045163/101236473-dce80980-3714-11eb-9b64-dde07af86818.png)
4+
5+
1. BFS๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ž„์„ ๊นจ๋‹ซ๊ธฐ
6+
2. ๋ฌธ์ œ ์กฐ๊ฑด์„ ์ž˜ ํŒŒ์•…ํ•˜๊ณ  ์ •ํ™•ํžˆ ์กฐ๊ฑด ๊ตฌํ˜„ํ•˜๊ธฐ
7+
3. BFS์—์„œ ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ๋ฌธ์ œ ๊ธฐ์–ตํ•˜๊ธฐ !!

0 commit comments

Comments
ย (0)