[이코테_JAVA] 정렬 문제 풀이_성적이 낮은 순서로 학생 출력하기

Wang_Seok_Hyeon·2023년 3월 16일
0
post-thumbnail

정렬 문제의 경우 크게 도움이 되는 것 같은 문제는 없는 것 같다.
라이브러리가 잘 만들어져 있어서 그런 것도 있다지만,
진짜 문제를 어렵게 낸다던지, 퀵정렬 문제를 빡세게 내 주는 형태였으면
조금 더 도움이 될 수 있었겠다는 생각을 가진다.
특히 분할 정복 같은 개념이 많이 녹아 들어 있는 퀵 정렬 부분을 구체적으로
알려줬으면 하는 아쉬움이 남는다.
학습을 위해서 최대한 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);
    }
}
profile
하루 하루 즐겁게

0개의 댓글