이것이 코딩테스트다 모험가 길드(java)
2023. 2. 20. 15:39ㆍ코딩테스트/이것이 코딩테스트다
문제
공포도가 x인 모험가는 반드시 x명 이상으로 구성된 그룹으로 참여가능하다.
입력 조건
첫째 줄 모험가의 수 n, 둘째 줄에 각 모험가의 공포도가 주어진다.
출력조건
여행을 떠날 수 있는 그룹 수의 최댓값을 출력한다.
나의 풀이
public class greedy01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int answer = 0;
int[] testcase = new int[n];
for (int i = 0; i < n; i++) {
testcase[i] = scanner.nextInt();
}
//오름차순 정렬
Arrays.sort(testcase);
int count = 0;
for (int i = 0; i < n; i++) {
count++;
if(testcase[i] <= count) {
answer++;
count = 0;
}
}
System.out.println("answer = " + answer);
}
}
최대 그룹을 만들기 위해서는 공포도가 낮은 사람순으로 그룹을 만드는 방식으로 진행하면 된다.
따라서 공포도를 오름차순으로 정렬을 한 다음 그룹의 수를 구하는 방식으로 진행하면 된다.
public class greedy01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int answer = 0;
ArrayList<Integer> testcase = new ArrayList<>();
for (int i = 0; i < n; i++) {
testcase.add(scanner.nextInt());
}
//오름차순 정렬
Collections.sort(testcase);
int count = 0;
for (int i = 0; i < n; i++) {
count++;
if(testcase.get(i) <= count) {
answer++;
count = 0;
}
}
System.out.println("answer = " + answer);
}
}
'코딩테스트 > 이것이 코딩테스트다' 카테고리의 다른 글
| 이것이 코딩테스트다 - 곱하기 혹은 더하기 (java) (0) | 2023.02.20 |
|---|---|
| 이것이 코딩테스트다. 그리디 - 1이 될 때까지 (java) (0) | 2022.12.31 |
| 이것이 코딩테스트다. 그리디 - 숫자 카드 게임 (java) (0) | 2022.12.31 |
| 이것이 코딩테스트다. 그리디 - 큰 수의 법칙 (java) (0) | 2022.12.30 |
| 이것이 코딩테스트다. 그리디 - 거스름돈(java) (0) | 2022.12.30 |