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
'코딩테스트 연습 > programmers' 카테고리의 다른 글
[Programmers] 깊이/너비 우선 탐색(DFS/BFS) > 여행경로(c++) (0) | 2022.01.17 |
---|---|
[Programmers] 깊이/너비 우선 탐색(DFS/BFS) > 단어 변환(c++) (0) | 2022.01.13 |
[Programmers] 깊이/너비 우선 탐색(DFS/BFS) > 네트워크(c++) (0) | 2022.01.12 |
[Programmers] 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버(c++) (0) | 2022.01.12 |
[Programmers] 정렬 > 가장 큰 수 (0) | 2022.01.11 |