Hello Programmers/Coders, Today we are going to share solutions of Programming problems of HackerRank of Programming Language Java . At Each Problem with Successful submission with all Test Cases Passed, you will get an score or marks. And after solving maximum problems, you will be getting stars. This will highlight your profile to the recruiters.
In this post, you will find the solution for Java Priority Queue-HackerRank Problem. We are providing the correct and tested solutions of coding problems present on HackerRank. If you are not able to solve any problem, then you can take help from our Blog/website.
Use “Ctrl+F” To Find Any Questions Answer. & For Mobile User, You Just Need To Click On Three dots In Your Browser & You Will Get A “Find” Option There. Use These Option to Get Any Random Questions Answer.
Introduction To Java
JAVA was developed by James Gosling at Sun Microsystems Inc in the year 1991, later acquired by Oracle Corporation. It is a simple programming language. Java makes writing, compiling, and debugging programming easy. It helps to create reusable code and modular programs.
Java is a class-based, object-oriented programming language and is designed to have as few implementation dependencies as possible. A general-purpose programming language made for developers to write once run anywhere that is compiled Java code can run on all platforms that support Java. Java applications are compiled to byte code that can run on any Java Virtual Machine. The syntax of Java is similar to c/c++.
Link for the Problem – Java Priority Queue – Hacker Rank Solution
Java Priority Queue – Hacker Rank Solution
Problem :
In computer science, a priority queue is an abstract data type which is like a regular queue, but where additionally each element has a “priority” associated with it. In a priority queue, an element with high priority is served before an element with low priority. – Wikipedia
In this problem we will test your knowledge on Java Priority Queue.
There are a number of students in a school who wait to be served. Two types of events, ENTER and SERVED, can take place which are described below.
- ENTER: A student with some priority enters the queue to be served.
- SERVED: The student with the highest priority is served (removed) from the queue.
A unique id is assigned to each student entering the queue. The queue serves the students based on the following criteria (priority criteria):
- The student having the highest Cumulative Grade Point Average (CGPA) is served first.
- Any students having the same CGPA will be served by name in ascending case-sensitive alphabetical order.
- Any students having the same CGPA and name will be served in ascending order of the id.
Create the following two classes:
- The Student class should implement:
- The constructor
Student(int id, String name, double cgpa)
. - The method
int getID()
to return the id of the student. - The method
String getName()
to return the name of the student. - The method
double getCGPA()
to return the CGPA of the student.
- The constructor
- The Priorities class should implement the method
List<Student> getStudents(List<String> events)
to process all the given events and return all the students yet to be served in the priority order.
Input Format
The first line contains an integer, , describing the total number of events. Each of the subsequent lines will be of the following two forms:
ENTER name CGPA id
: The student to be inserted into the priority queue.SERVED
: The highest priority student in the queue was served.
The locked stub code in the editor reads the input and tests the correctness of the Student and Priorities classes implementation.
Constraints
Output Format
The locked stub code prints the names of the students yet to be served in the priority order. If there are no such student, then the code prints EMPTY
.
Sample Input 0
12 ENTER John 3.75 50 ENTER Mark 3.8 24 ENTER Shafaet 3.7 35 SERVED SERVED ENTER Samiha 3.85 36 SERVED ENTER Ashley 3.9 42 ENTER Maria 3.6 46 ENTER Anik 3.95 49 ENTER Dan 3.95 50 SERVED
Sample Output 0
Dan Ashley Shafaet Maria
Explanation 0
In this case, the number of events is 12. Let the name of the queue be Q.
- John is added to Q. So, it contains (John, 3.75, 50).
- Mark is added to Q. So, it contains (John, 3.75, 50) and (Mark, 3.8, 24).
- Shafaet is added to Q. So, it contains (John, 3.75, 50), (Mark, 3.8, 24), and (Shafaet, 3.7, 35).
- Mark is served as he has the highest CGPA. So, Q contains (John, 3.75, 50) and (Shafaet, 3.7, 35).
- John is served next as he has the highest CGPA. So, Q contains (Shafaet, 3.7, 35).
- Samiha is added to Q. So, it contains (Shafaet, 3.7, 35) and (Samiha, 3.85, 36).
- Samiha is served as she has the highest CGPA. So, Q contains (Shafaet, 3.7, 35).
- Now, four more students are added to Q. So, it contains (Shafaet, 3.7, 35), (Ashley, 3.9, 42), (Maria, 3.6, 46), (Anik, 3.95, 49), and (Dan, 3.95, 50).
- Anik is served because though both Anil and Dan have the highest CGPA but Anik comes first when sorted in alphabetic order. So, Q contains (Dan, 3.95, 50), (Ashley, 3.9, 42), (Shafaet, 3.7, 35), and (Maria, 3.6, 46).
As all events are completed, the name of each of the remaining students is printed on a new line.
Java Priority Queue – Hacker Rank Solution
import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.Comparator; import java.util.PriorityQueue; class Student { private final int id; private final String name; private final double cgpa; public Student(int id, String name, double cgpa) { this.id = id; this.name = name; this.cgpa = cgpa; } public int getID() { return id; } public String getName() { return name; } public double getCGPA() { return cgpa; } } class Priorities { private final PriorityQueue<Student> queue = new PriorityQueue<>( Comparator.comparing(Student::getCGPA).reversed() .thenComparing(Student::getName) .thenComparing(Student::getID)); public List<Student> getStudents(List<String> events) { events.forEach((event) -> { if (event.equals("SERVED")) { queue.poll(); } else { String[] details = event.split(" "); queue.add(new Student(Integer.parseInt(details[3]), details[1], Double.parseDouble(details[2]))); } }); List<Student> students = new ArrayList<>(); while (!queue.isEmpty()) { students.add(queue.poll()); } return students; } } public class Solution { private final static Scanner scan = new Scanner(System.in); private final static Priorities priorities = new Priorities(); public static void main(String[] args) { int totalEvents = Integer.parseInt(scan.nextLine()); List<String> events = new ArrayList<>(); while (totalEvents-- != 0) { String event = scan.nextLine(); events.add(event); } List<Student> students = priorities.getStudents(events); if (students.isEmpty()) { System.out.println("EMPTY"); } else { for (Student st : students) { System.out.println(st.getName()); } } } }
Some truly superb info , Gladiola I discovered this. “The distance between insanity and genius is measured only by success.” by James Bond Tomorrow Never Dies.
I кnow this website offers quality ɗepending posts and additional material, is there any ᧐ther
site which ɡives these information in quality?
I discovered your blog website on google and verify just a few of your early posts. Continue to maintain up the excellent operate. I simply further up your RSS feed to my MSN News Reader. In search of ahead to reading more from you in a while!…
I¦ve been exploring for a little for any high quality articles or blog posts on this sort of house . Exploring in Yahoo I eventually stumbled upon this web site. Studying this information So i¦m glad to show that I’ve an incredibly good uncanny feeling I found out just what I needed. I so much indisputably will make sure to do not disregard this site and provides it a look regularly.
Thank you for the sensible critique. Me & my neighbor were just preparing to do some research about this. We got a grab a book from our local library but I think I learned more from this post. I am very glad to see such fantastic information being shared freely out there.
Great work! This is the kind of info that should be shared across the internet.
Shame on the search engines for no longer positioning this put
up higher! Come on over and seek advice from my web
site . Thanks =)
Wow, amazing weblog format! How lengthy have you ever been blogging for? you made running a blog look easy. The whole look of your website is wonderful, let alone the content!
I am not really good with English but I get hold this very easy to interpret.
You have noted very interesting points! ps decent site.
Hello.This article was extremely fascinating, particularly since I was searching for thoughts on this issue last Friday.
Very interesting info!Perfect just what I was searching for!
Simply want to say your article is as astounding. The clarity in your post is just great and i could suppose you’re an expert in this subject. Fine along with your permission let me to grasp your feed to stay updated with drawing close post. Thank you a million and please carry on the enjoyable work.
Nice blog here! Additionally your website so much up very fast! What host are you the usage of? Can I get your associate link on your host? I want my web site loaded up as fast as yours lol
Pretty portion of content. I simply stumbled upon your weblog and in accession capital to say that I get actually loved account your blog posts. Any way I will be subscribing in your augment and even I success you get entry to persistently quickly.
I was curious if you ever considered changing the structure of your blog? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having 1 or 2 images. Maybe you could space it out better?
Thank you for another magnificent post. Where else could anyone get that kind of info in such a perfect way of writing? I’ve a presentation next week, and I’m on the look for such information.
I saw a lot of website but I believe this one holds something special in it in it
Howdy! I simply would like to give an enormous thumbs up for the good data you’ve got right here on this post. I might be coming back to your blog for extra soon.
Thanks for sharing superb informations. Your web site is very cool. I am impressed by the details that you’ve on this website. It reveals how nicely you perceive this subject. Bookmarked this web page, will come back for more articles. You, my friend, ROCK! I found just the information I already searched all over the place and simply couldn’t come across. What a great site.
Good post. I learn one thing tougher on completely different blogs everyday. It’ll always be stimulating to learn content material from other writers and practice a bit something from their store. I’d favor to use some with the content material on my weblog whether you don’t mind. Natually I’ll offer you a link on your internet blog. Thanks for sharing.
cheap tadalafil tablets cheap tadalafil without prescription best male ed pills
There are actually a number of details like that to take into consideration. That could be a great point to convey up. I offer the thoughts above as general inspiration however clearly there are questions just like the one you convey up where crucial factor shall be working in trustworthy good faith. I don?t know if finest practices have emerged around issues like that, however I’m certain that your job is clearly recognized as a fair game. Each girls and boys really feel the affect of only a moment’s pleasure, for the rest of their lives.
duricef where to buy brand combivir buy generic proscar 1mg
diflucan 200mg generic order ciprofloxacin 1000mg for sale cipro canada
flagyl drug flagyl order keflex drug
cleocin ca sildenafil 100mg pills free ed pills
nolvadex 10mg usa nolvadex 10mg over the counter cefuroxime 500mg pills
bimatoprost cheap robaxin pills brand trazodone 100mg
sildenafil 50mg generic oral sildenafil 100mg order sildalis
accutane 10mg sale buy azithromycin 500mg pill buy zithromax online cheap
buy azipro 250mg sale order prednisolone 40mg online cheap gabapentin for sale online
order furosemide 40mg for sale buy furosemide 100mg generic albuterol 4mg usa
generic levitra 10mg zanaflex pills order plaquenil 400mg pill
purchase altace for sale order altace sale arcoxia 120mg brand
levitra 20mg cost levitra sale cost plaquenil
how to buy mesalamine order generic avapro 150mg avapro 300mg tablet