Algorithms/문제 풀이

이것이 코딩 테스트다 : 모험가 길드

DeJa 2021. 12. 18. 16:19
728x90

모험가 길드

이것이 코딩테스트다의 모험가 길드 문제풀이

해설

몇 가지 케이스를 만들어서 오름차순(Asc) 와 내림차순(Desc) 기준으로 구분을 해봤다. 마지막 Case4 를 보면 오름차순으로 정렬되었을 때 그룹 수의 최댓값을 구할 수 있는 것을 알 수 있다. 그리고 파란색으로 밑줄친 부분이 조건문이 필요하다는 핵심적인 부분이다. 저부분을 통해 어떤식으로 조건문을 짜면 되는지 힌트를 얻을 수 있다.

구현

public class Main {

    private static int N;
    private static int[] fear;
    private static int group;

    public static void main(String[] args) {
        input();
        greedy();
        System.out.println(group);
    }

    private static void input() {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        fear = new int[N];

        for (int i = 0; i < N; i++) {
            fear[i] = sc.nextInt();
        }
    }

    private static void greedy() {
        Arrays.sort(fear);
        int adventurer = 0;
        for (int i = 0; i < N; i++) {
            adventurer++;
            if(adventurer >= fear[i]) {
                group++;
                adventurer = 0;
            }
        }
    }
}
728x90