백준 알고리즘(C++)
백준 16200번 해커톤(C++)
coding232624
2023. 12. 17. 22:42
문제
https://www.acmicpc.net/problem/16200
16200번: 해커톤
예를 들어, 5명의 학생이 있고, X1 = 1, X2 = 2, X3 = 5, X4 = 2, X5 = 1인 경우에 팀의 수의 최솟값은 4이다. {1}, {2}, {3}, {4}, {5}로 5개의 팀을 만드는 방법이 있지만, 이것은 팀의 수가 최소가 아니다. {1}, {3}
www.acmicpc.net
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include<bits/stdc++.h>
using namespace std;
int N,ret,cnt;
int tmp = 100000;
int N_list[100004] = {100001};
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);cout.tie(NULL);
//N 입력받기
cin >> N;
//N_list 입력받기
for(int i = 0; i < N; i++){
int a;
cin >> a;
N_list[i] = a;
}
//N_list 정렬하기
sort(N_list,N_list+N);
//반복문 돌면서 팀의 수 구하기
tmp = N_list[0];
for (int i = 0; i < N; i++)
{
cnt ++;
if (cnt == tmp){
ret ++;
cnt = 0;
tmp = N_list[i+1];
}
}
//마지막 그룹이 카운트되지 않은 예외 처리
if (cnt != 0) ret ++;
cout << ret;
return 0;
}
|
cs |