문제 : https://www.acmicpc.net/problem/13333
[알고리즘풀이]
1번 조건 : k 보다 크거나 같은 숫자를 k 개 뽑을 수 있어야한다.
2번 조건 : k 보다 작거나 같은 숫자를 n - k 개 뽑을 수 있어야 한다.
1번 조건에 의해 Q-Index는 최대 N이므로, N부터 역으로 순회하며 조건을 만족하는 Q-Index를 찾는다.
#include<iostream>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
int n, nl[1000];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> nl[i];
}
for (int i = n; i >= 0; i--) {
// i 가 Q-Index
int count = 0;
for (int j = 0; j < n; j++){
if(nl[j] >= i)
count++;
}
if(count >= i){
cout << i;
return 0;
}
}
}
'Problem Solving > ICPC' 카테고리의 다른 글
[ICPC][BOJ] 16283 - Farm (0) | 2019.09.28 |
---|---|
[ICPC][BOJ] 13328 - Message Passing (0) | 2019.09.23 |
[ICPC][BOJ] 13335 - Trucks (0) | 2019.09.23 |
[ICPC][BOJ] 8912 - Sales (0) | 2019.09.23 |
[ICPC][BOJ] 9093 - Word Reversal (0) | 2019.09.23 |