[프로그래머스] H-index_JAVA
2022. 2. 22. 14:19ㆍ알고리즘/프로그래머스
반응형
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42747
문제만 이해하면 금방 풀 수 있는 문제이다.
어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면
h의 최댓값이 이 과학자의 H-Index입니다.
먼저 인용 횟수로 정렬한다.
citations | return |
[3, 0, 6, 1, 5] | 3 |
[0, 1, 3, 5, 6] 으로 정렬된 후, answer를 0으로 초기화 하고 'h번 이상 인용된 논문의 개수'로 둔다.
citations : 6 > answer : 0 인용 횟수보다 낮으니 answer++
citations : 5 > answer : 1 인용 횟수보다 낮으니 answer++
citations : 3 > answer : 2. 인용 횟수보다 낮으니 answer++
citations : 1 < answer : 3. 인용 횟수보다 커져 break;
3번이상 인용된 논문은 [6, 5, 3] 3편 이상이고 나머지 논문은 [0, 1]로 3번 이하로 인용되었으므로
H-index 는 3이된다.
import java.util.Arrays;
import java.util.Collections;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Arrays.sort(citations);
for (int i = citations.length - 1; i > -1; i--) {
if (answer < citations[i] )
answer++;
else
break;
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 카펫_JAVA (0) | 2022.02.22 |
---|---|
[프로그래머스] 모의고사_JAVA (0) | 2022.02.22 |
[프로그래머스] 가장 큰 수_JAVA (0) | 2022.02.22 |
[프로그래머스] K번째수_JAVA (0) | 2022.02.22 |
[프로그래머스] 이중우선순위큐_JAVA (0) | 2022.02.22 |