In this problem, we will be writing our own graph search algorithm.
It is the year 3000 and the greedy government has added tolls to all the roads! You are trying to get to GSU to take Professor Kumar's exam, but don't want to spend a lot of money on these silly tolls. You are leaving quite early in the morning, so time is not a concern.
There are up to 8 possible tolls, but you don't need to visit all 8. You just need to get to toll H as it is the closest one to GSU. You will always start at toll A.
When reading the input, the first line will be the number of edges. Each edge would come on its own line, in the format of Start End Toll.
Expected Output is the minimum number of dollars required for the trip.
I have written the input/output writing code for you. You can rewrite it if you'd like, but you do not need to.
Your findCheapestPath function is given a List> as input. This could look like
List[0] = ["A", "B", "3"];
List[1] = ["A", "C", "4"];
List[2] = ["C", "H", "2"];
List[3] = ["B", "H", "9"];
A good step one would be to use this input list to create some nodes and edges, and then write some kind of search to find your end node! Good luck!
Input Format
4
A B 3
A C 4
C H 2
B H 9
Constraints
You may use use imports from java.util.*. You can assume there are no infinite loops, and that, the graph is finite (At most 8 tolls). There will also always be a path from A to H. If you are unable to write the code to find the smallest path, consider just finding a path that has weight less than 10. This will give you a large majority of the points (most of the test cases!). Hint: All of the repl.its have been left up!
Output Format
6
Sample Input 0
4
A B 3
A C 4
C H 2
B H 9
Sample Output 0
6
Explanation 0
The graph is of A, B, C, H. A points to B and C, with weights 3 and 4 respectively. C and B point to H, with weights 2 and 9 respectively. Shortest path from A-H would be A-C (4) + C-H(2) = 6.
//Code to start from
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
class Result {
/*
* Complete the 'findCheapestPath' function below.
*
* The function is expected to return an INTEGER.
* The function accepts 2D_STRING_ARRAY edges as parameter.
*/
public static int findCheapestPath(List<List> edges) {
// Write your code here
}
}
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
int n = Integer.parseInt(bufferedReader.readLine().trim());
List<List> arr = new ArrayList<>();
for (int i = 0; i < n; i++) {
arr.add(Arrays.asList(bufferedReader.readLine().replaceAll("\s+$", "").split(" ")));
}
int result = Result.findCheapestPath(arr);
bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();
bufferedReader.close();
bufferedWriter.close();
}
}
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of