728x90
반응형
문제 설명
문제를 이해하는데 조금 걸렸다.
k번 이상 인용된 논문이 k편 이상이고 나머지 n − k 편의 논문들 인용회수가 각각 k 번 이하라면, 해당 학생의 q-인덱스는 k이다.
위의 말은 논문 인용 횟수를 오름차순으로 정렬하고(밑의 코드의 vector<int> v), k가 인용횟수의 어느 위치에 있는지 찾아준다(내부 for문). 이 부분은 k를 기준으로 인용횟수의 왼쪽과 오른쪽이 나누어서 조건을 파악하기 위해서이다. 이부분을 만족하는 최대의 k값을 구한다.
코드
#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
vector<int> v;
v.resize(n);
for(int i = 0; i < n ; i++)
{
scanf("%d",&v[i]);
}
sort(v.begin(),v.end());
int max = -1;
for(int k = 0; k <= n; k++)
{
for(int i = 0; i < n; i++)
{
if(v[i] >= k && k <= n-i && n-k <= i+1)
{
//k가 vector에서 어디에 위치하는지 찾은 후
//i의 왼쪽과 오른쪽의 개수가 만족하면 max값을 바꿔준다.
max = k;
}
}
}
printf("%d\n",max);
}
728x90
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] GCD, LCM(최대공약수, 최소공배수) 구하기 (Feat. 유클리드 호제법) (0) | 2021.09.24 |
---|---|
[Algorithm] 백준 10253 - 헨리 풀이 (0) | 2021.09.23 |
[Algorithm] 백준 13325 이진트리 풀이 (0) | 2021.09.22 |
[Algorithm] sort() 함수 사용하기(feat. compare 이용하기 ) (1) | 2021.09.21 |
[Algorithm] 회의실 배정문제 BOJ 1931 (feat. Activity Selection Problem, 그리디 알고리즘) (0) | 2021.09.21 |