문제 : 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

+ Recent posts