반응형
- 첫 풀이 및 정답풀이
조이스틱 문제를 풀고 바로 풀어보니 너무 쉽다. H-Index에 대한 정의가 좀 복잡하게 설명되어 있는데, 단순히 h를 찾기 위해 탐색을 수행해주면 된다. 단, 여기서 고려해야 하는 h는 citations로 주어지는 최댓값을 넘을 필요가 없다. 넘게 되면 문제에서 정의하는 H-Index를 만족할 수 없다. 바로 코드를 보자.
import java.util.Arrays;
class Solution {
public int solution(int[] citations) {
int answer = 0;
// 1. 탐색을 위해 주어진 데이터를 정렬.
Arrays.sort(citations);
// 2. 인용횟수의 최댓값까지 탐색.
for(int h =0;h<=citations[citations.length-1];h++){
// 3. h번 이상 인용된 논문의 수.
int up=0;
// 4. citations 탐색.
for(int j = 0;j<citations.length;j++){
// 5. h번 이상 인용된 논문을 만나면,
if(citations[j]>=h){
// 6. 전체 논문의 수 - 해당 논문의 인덱스 = h번 이상 인용된 논문의 수.
// 정렬을 수행했기 때문에, h번 이상 인용된 논문만 고려하면 된다.
up = citations.length - j;
break;
}
}
// 7. h번 인용된 논문의 수 >= h
if(up>=h){
// 8. 최댓값 교체.
if(answer < h) answer = h;
}
}
return answer;
}
}
반응형