-
Notifications
You must be signed in to change notification settings - Fork 110
/
solution.java
69 lines (54 loc) · 2.17 KB
/
solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
- In this question there are 3 condition which we need to consider
- We can jump from index i to index i+1 & i+2
- when jumping from i to i+2 we need to see c[i+2] is safe cloud & i+2 is less than lenth of c
- when above conditions are satisfied code we will jump to i+2 think this as we do in greedy questions
- If any of the above condition is not satisfied we need to jump to i+1 because it is given solution always exist
*/
import java.io.*;
import java.util.*;
public class solution {
// Complete the jumpingOnClouds function below.
static int jumpingOnClouds(int[] c) {
// for storing the number of jumps
int jumps=0;
// n stores length of array c
int n=c.length;
//loop traversing through given array c
for(int i=0; i<n;){
// checking whether jumping to i+2 is a valid move or not
if(i+2<n&&c[i+2]==0){
i=i+2;
jumps++;
}else{
//when jumping only to i+1
jumps++;
i++;
}
if(i==n-1){
// if we reached end we will come out of loop
break;
}
}
//return the number of jumps
return jumps;
}
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) throws IOException {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
int n = scanner.nextInt(); // length of array i.e. number of clouds
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
int[] c = new int[n]; // array to store number of valid clouds
String[] cItems = scanner.nextLine().split(" ");
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
for (int i = 0; i < n; i++) {
int cItem = Integer.parseInt(cItems[i]);
c[i] = cItem; // value of index in array
}
int result = jumpingOnClouds(c);
bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();
bufferedWriter.close();
scanner.close();
}
}