[Sort] H-index

서은경·2022년 4월 7일
0

CodingTest

목록 보기
7/71
public int solution(int[] citations) {
        int answer = 0;

        int h_index = 0;
        int max = citations.length;
        Arrays.sort(citations);

        for (int i = 0; i < max; i++) {
            int cnt = 0;
            int use = citations[i];
            if(use==0) continue;
            for (int j = i; j < max; j++) {
                if (use <= citations[j]) {
                    cnt++;
                }
            }
            if(max==cnt) {
                h_index = max;
                //break;
            }
            if(use > cnt) {
                h_index = cnt;
                break;
            }
        }
        answer = h_index;

        return answer;
    }

머리를 껭껭꽁꽁 싸매다가 풀었다 (다른 사람 풀이 보니까 훨씬 간결하고 잘해놨지만 일단 혼자 힘으로 해냈다는 점에 의의를 두기로..)

우선 인용 논문 횟수를 오름차순 정렬하여 남은 논문 수를 cnt에 담았다. h번 인용한 논문이 h편 이상 있어야 하므로 h_index를 cnt로 계속 갱신하지만 현재 인용된 논문 수인 use가 남은 논문 수인 cnt를 넘으면 break를 걸어 빠져나오도록 했다.
max==cnt 구문은 배열이 모두 똑같은 인용횟수로 들어올 경우 조건을 걸어준 것이다.

다른 사람의 코드 참고와 분석

요기 써야되는데 조금만 이따가 써야겠다

마지막으로 이건.. 고뇌의 흔적

0개의 댓글

관련 채용 정보