알고리즘/자료구조
[코드업] 성적표 출력 (구조체 연습) - Java
jny0
2023. 3. 2. 19:21
https://codeup.kr/problem.php?id=3015
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
public class Main {
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
String[] input = sc.nextLine().split(" ");
int n = Integer.parseInt(input[0]);
int m = Integer.parseInt(input[1]);
List<list> st_list = new ArrayList<>();
for(int i=0; i<n; i++){
String[] input2 = sc.nextLine().split(" ");
st_list.add(new list(input2[0],Integer.parseInt(input2[1])));
}
sc.close();
List<list> sortedList = st_list.stream()
//.sorted((e2, e1) -> e1.getScore() - e2.getScore()) // 내림차순 정렬 (가장 큰 값이 1번)
.sorted(Comparator.comparing(list::getScore).reversed()) // 내림차순 정렬 (가장 큰 값이 1번)
.collect(Collectors.toList());
for(int i=0; i<m; i++){
System.out.println(sortedList.get(i).getName());
}
}
}
class list {
private String name;
private int score;
public list(String name, int score) {
this.name = name;
this.score = score;
}
public int getScore() {
return score;
}
public String getName() {
return name;
}
@Override
public String toString() {
return name + " " + score;
}
}