그리디 알고리즘 - 활동선택문제

leeng·2023년 8월 7일
0
    void selectActivity(int[] s, int[] f) {
        List<int[]> list = new ArrayList<>();

        for (int i = 0; i < s.length; i++) {
            list.add(new int[]{s[i], f[i]});
        }

        list.stream().sorted(Comparator.comparingInt(arr -> arr[1])).forEach(arr -> System.out.println(arr[0] + ", " + arr[1]));
        List<Integer> selected = new ArrayList<>();
        selected.add(1);
        int end = list.get(0)[1];

        for (int i = 1; i < s.length; i++) {
            int[] arr = list.get(i);
            if (end <= arr[0]) {
                selected.add(i + 1);
                end = arr[1];
            }
        }
        selected.stream().forEach(System.out::println);
    }
profile
기술블로그보다는 기록블로그

0개의 댓글