코딩테스트 연습/programmers
[Programmers] 정렬 > H-index
수기
2022. 1. 11. 17:51
https://programmers.co.kr/learn/courses/30/lessons/42747
코딩테스트 연습 - H-Index
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표
programmers.co.kr
citations의 값을 내림차순으로 정렬한 후,
citations[i]와 i+1가 같을때 i+1값
citations[i]보다 i+1가 더 커질때 i값
이것이 answer이 된다.
위에서 해당하는 경우가 없는 경우는 citations배열의 길이 값이 answer이다.
들어온 값중 가장 큰 값 (citations[0])이 0인경우의 answer은 0으로 예외 처리를 해준다.
bool compare(int a,int b) {return a>b;}
int solution(vector<int> citations) {
int answer = 0;
sort(citations.begin(), citations.end(), compare);
for(int i=0;i<citations.size();i++){
if(i+1 == citations[i]) {answer = i+1; break;}
if(i+1 > citations[i]) {answer = i; break;}
}
if(answer == 0) answer = citations.size();
if(citations[0] == 0) answer = 0;
return answer;
}
테스트케이스
[3,0,6,1,5] 3
[4,4,4] 3
[10,9,4,1,1,1] 3
[0,0,0] 0