프로그래머스 lv2 H-Index

namkun·2022년 8월 9일
0

코딩테스트

목록 보기
36/79

문제 링크

H-Index

풀이

  • 문제가 뭔소린가 했는데, 오히려 링크로 준 꺼무위키를 보고 이해했다.
  • H-Index는 h번 이상 인용된 논문이 h편 이상인 h의 최댓값이다.
  • 먼저 배열을 정렬해준다. (오름 차순)
  • for문을 돌면서 배열 길이에서 현재 인덱스를 빼주면, 현재 인덱스보다 큰, 즉 현재 인덱스 값의 논문이 인용된 개수가 나온다.
  • 그 값이 만약에 배열에서 현재 인덱스 값보다 작거나 같다면?
    ( 배열의 현재 인덱스 값 번 이상 인용된 논문이 위에서 구한 논문이 인용된 편 이상)
  • 그 자리에서 for 문을 break해준다. 왜냐면 h값은 뒤로갈수록 점점 작아지기 때문.
import java.util.Arrays;

class Solution {
    public int solution(int[] citations) {
        Arrays.sort(citations);
        int answer = 0;
        for(int i = 0; i < citations.length; i ++){
            int h = citations.length - i; // citations[i] 이상 인용된 논문의 개수

            if(citations[i] >= h){ // 만약 citation[i] 회 이상 인용된 논문이 h개 이상이라면?
                answer = h;
                break; // 바로 for문 탈출!
            }
        }
        return answer;
    }
}
profile
개발하는 중국학과 사람

0개의 댓글