Algorithm/이코테

1.모험가 길드

마닐라 2021. 12. 10. 12:37

📍 문제 설명

💡 접근

예제는 그렇게 안나왔지만 공포도가 낮은 모험가를 기준으로 모험을 보낼 수 있도록 한다.

모험가를 확인하면서 그룹에 포함된 모험가 수를 하나씩 증가시켜줌

★★그룹에 포함된 모험가의 수 >= 해당 모험가의 공포도 이면 하나의 그룹으로 만들 수 있다.

그룹으로 만들었으면 그룹에 포험된 모험가의 수를 다시 0으로 지정해놓고 다시 반복한다.

 

👩‍💻 코드

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);

        int n = kb.nextInt();
        int[] arr = new int[n];
        for(int i = 0; i < n; i++) {
            arr[i] = kb.nextInt();
        }

        Arrays.sort(arr);

        //여행을 떠날 수 있는 모험가 그룹 수
        int answer = 0;
        //그룹에 포함된 모험가 수
        int count = 0;

        //1 , 22 , 끝
        //공포도가 1 일땐 1명의 그룹을 만들어라. [2,2,2,3]
        //공포도가 2 일땐 2명의 그룹을 만들어라. [2,3]
        for(int i = 0; i < n; i++) {
            //모험가 수를 추가
            count++;
            //count = 1 , arr[0] = 1 (o)
            //count = 1 , arr[1] = 2 (x)
            //count = 2 , arr[2] = 2 (o)
            //count = 1 , arr[3] = 2 (x)
            //count = 2 , arr[4] = 3 (x)
            //그룹으로 만들 수 있을 때
            if(count >= arr[i]) {
                answer++;
                count = 0;
            }
        }

        System.out.println(answer);

    }
}

'Algorithm > 이코테' 카테고리의 다른 글

3.문자열 뒤집기  (0) 2021.12.10
2.곱하기 혹은 더하기  (0) 2021.12.10
효율적인 화폐 구성  (0) 2021.11.25
바닥 공사  (0) 2021.11.25
1로 만들기  (0) 2021.11.25