FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
JavaProgramming/HackerRank/TwentyOne.java at patch-2 · subham500071430/JavaProgramming · GitHub
subham500071430
/
JavaProgramming
Public
forked from
karterhhgg/JavaProgramming
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
JavaProgramming
/
HackerRank
/
TwentyOne.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
94 lines (79 loc) · 2.57 KB
Breadcrumbs
JavaProgramming
/
HackerRank
/
TwentyOne.java
Copy path
File metadata and controls
94 lines (79 loc) · 2.57 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package
HackerRank
;
import
java
.
util
.
ArrayList
;
import
java
.
util
.
List
;
import
java
.
util
.
Scanner
;
import
java
.
util
.
PriorityQueue
;
import
java
.
util
.
Comparator
;
/*
* Create the Student and Priorities classes here.
*/
class
Student
{
private
int
id
;
private
String
name
;
private
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
{
public
List
<
Student
>
getStudents
(
List
<
String
>
events
) {
PriorityQueue
<
Student
>
pq
=
new
PriorityQueue
<
Student
>(
1000
,
new
Comparator
<
Student
>() {
public
int
compare
(
Student
s1
,
Student
s2
) {
if
(
Double
.
compare
(
s2
.
getCGPA
(),
s1
.
getCGPA
()) !=
0
) {
return
Double
.
compare
(
s2
.
getCGPA
(),
s1
.
getCGPA
());
}
else
if
(!
s1
.
getName
().
equals
(
s2
.
getName
())) {
return
s1
.
getName
().
compareTo
(
s2
.
getName
());
}
else
{
return
s1
.
getID
() -
s2
.
getID
();
}
}
});
for
(
String
event
:
events
) {
if
(
event
.
startsWith
(
"ENTER"
)) {
String
[]
parts
=
event
.
split
(
" "
);
String
name
=
parts
[
1
];
double
cgpa
=
Double
.
parseDouble
(
parts
[
2
]);
int
id
=
Integer
.
parseInt
(
parts
[
3
]);
pq
.
add
(
new
Student
(
id
,
name
,
cgpa
));
}
else
if
(
event
.
equals
(
"SERVED"
)) {
pq
.
poll
();
}
}
List
<
Student
>
remainingStudents
=
new
ArrayList
<
Student
>();
while
(!
pq
.
isEmpty
()) {
remainingStudents
.
add
(
pq
.
poll
());
}
return
remainingStudents
;
}
}
public
class
TwentyOne
{
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
());
}
}
}
}
Back
|
FazBrowse Home
|
New Git URL