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
'Algorithms > 문제 풀이' 카테고리의 다른 글
[BOJ 16234] 인구 이동 (0) | 2021.12.31 |
---|---|
[BOJ 1715] 카드 정렬하기 (0) | 2021.12.18 |
[BOJ 18352] 특정 거리의 도시 찾기 (0) | 2021.12.18 |
[BOJ 3190] 뱀 (0) | 2021.12.18 |
[BOJ 18406] 럭키 스트레이트 (0) | 2021.12.16 |