[프로그래머스/42747] H-Index

☑️ 문제

프로그래머스 42747

☑️ 풀이

//시간: 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를 갱신한다.

© 2021. All rights reserved.

yaejinkong의 블로그