Skip to content

Commit d0a966a

Browse files
committed
11060 점프 점프
1 parent c50d00f commit d0a966a

File tree

2 files changed

+90
-33
lines changed

2 files changed

+90
-33
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package bfs.silver.silver_2;
2+
3+
import java.io.*;
4+
//import java.util.Arrays;
5+
import java.util.LinkedList;
6+
import java.util.Queue;
7+
import java.util.StringTokenizer;
8+
9+
public class _11060 {
10+
11+
private static int n;
12+
private static int result = -1;
13+
14+
private static int[] maze;
15+
private static boolean[] visited;
16+
17+
public static void main(String[] args) throws IOException {
18+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
19+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
20+
StringTokenizer st;
21+
22+
n = Integer.parseInt(br.readLine());
23+
24+
maze = new int[n];
25+
visited = new boolean[n];
26+
27+
st = new StringTokenizer(br.readLine());
28+
for (int i = 0; i < n; i++) {
29+
maze[i] = Integer.parseInt(st.nextToken());
30+
}
31+
32+
bfs();
33+
34+
bw.write(String.valueOf(result));
35+
bw.flush();
36+
bw.close();
37+
}
38+
39+
private static void bfs() {
40+
Queue<int[]> queue = new LinkedList<>();
41+
queue.add(new int[] {0, 0});
42+
visited[0] = true;
43+
44+
while (!queue.isEmpty()) {
45+
int[] cur = queue.poll();
46+
47+
if (cur[0] == n - 1) {
48+
result = cur[1];
49+
return;
50+
}
51+
52+
for (int i = cur[0] + 1; i <= cur[0] + maze[cur[0]] && i < n; i++) {
53+
if (!visited[i]) {
54+
visited[i] = true;
55+
queue.add(new int[] {i, cur[1] + 1});
56+
}
57+
}
58+
}
59+
}
60+
61+
/* Dynamic Programming */
62+
// public static void main(String[] args) throws IOException {
63+
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
64+
// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
65+
// StringTokenizer st;
66+
//
67+
// int n = Integer.parseInt(br.readLine());
68+
// int[] arr = new int[1001];
69+
// int[] dp = new int[1101];
70+
//
71+
// st = new StringTokenizer(br.readLine());
72+
// for(int i = 1; i <= n; i++) arr[i] = Integer.parseInt(st.nextToken());
73+
// Arrays.fill(dp, Integer.MAX_VALUE);
74+
//
75+
// dp[1] = 0;
76+
// for(int i = 1; i <= n; i++) {
77+
// if (dp[i] == Integer.MAX_VALUE) continue;
78+
//
79+
// for(int j = 1; j <= arr[i]; j++) {
80+
// dp[i + j] = Math.min(dp[i + j], dp[i] + 1);
81+
// }
82+
// }
83+
// if(dp[n] == Integer.MAX_VALUE) bw.write("-1");
84+
// else bw.write(String.valueOf(dp[n]));
85+
//
86+
// bw.flush();
87+
// bw.close();
88+
// }
89+
90+
}

src/main/java/dynamic_programming/silver/silver_2/_11060.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)