정렬 문제의 경우 크게 도움이 되는 것 같은 문제는 없는 것 같다.
라이브러리가 잘 만들어져 있어서 그런 것도 있다지만,
진짜 문제를 어렵게 낸다던지, 퀵정렬 문제를 빡세게 내 주는 형태였으면
조금 더 도움이 될 수 있었겠다는 생각을 가진다.
특히 분할 정복 같은 개념이 많이 녹아 들어 있는 퀵 정렬 부분을 구체적으로
알려줬으면 하는 아쉬움이 남는다.
학습을 위해서 최대한 Stream을 사용하는 훈련을 하는 방향을 남겼다.
뒤에 보면 chapter 14로 해서 문제들이 즐비한 것을 보았기에 이 문장은 지운다
public class 실전문제2_성적이낮은순서로학생출력하기 {
private static void solution(int N) {
Scanner sc = new Scanner(System.in);
Map<Integer, String> map = new HashMap<>();
int temp = N;
while (N > 0) {
System.out.print("총 " + temp
+" 번 값을 입력합니다. 현재 "
+ (temp-N+1)
+"{사람이름} {성적} ");
String[] s = sc.nextLine().split(" ");
map.put(Integer.parseInt(s[1]), s[0]);
N--;
}
int[] arr = map.keySet()
.stream()
.sorted(Comparator.reverseOrder())
.mapToInt(Integer::intValue)
.toArray();
for (int i : arr) {
System.out.print(map.get(i));
System.out.println();
}
}
public static void main(String[] args) throws IOException {
solution(3);
}
}