[프로그래머스/42747] H-Index
in Study / Coding Test
☑️ 문제
☑️ 풀이
//시간: 5.23ms
//메모리: 96.1MB
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Integer[] arr = Arrays.stream(citations).boxed().toArray(Integer[]::new);
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) {
return b.compareTo(a);
}
});
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= i + 1) {
answer = i + 1;
}
}
return answer;
}
}
- 문제의 가독성이 떨어져 이해하지 못했다.
- 다른 사람의 풀이에서 문제를 재정의 해준 걸 보고 풀었더니 금방 풀었다..
- 먼저 배열을 내림차순으로 정렬하여 가장 많이 인용된 논문부터 탐색할 수 있도록 한하였다.
- 그리고 i번째 논문의 인용 횟수가 i+1보다 크거나 같으면 H-Index를 갱신한다.