[java] 프로그래머스 - H-Index

0

[문제링크 - 프로그래머스 - H-Index] https://school.programmers.co.kr/learn/courses/30/lessons/42747

처음 코드

import java.util.*;

class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Arrays.sort(citations);
        for(int i=0; i<citations[citations.length-1]; i++){
            for(int j=0; j<citations.length; j++){
                if(citations[j] == i){
                    if(j+1 <= i && (citations.length-j) >= i) answer = i;
                } else if(citations[j] > i){
                    if(j <= i && (citations.length-j) >= i) answer = i;
                }
            }
        }
        return answer;
    }
}
  • h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용 이라는 말을 잘못 이해해서 h번 보다 낮은 경우의 수도 조사했었다.



최종 코드

  • 인용 횟수와 남은 개수를 비교하여 작은 값이 들어오도록 하면 된다.
class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Arrays.sort(citations);
        for(int i=0; i<citations.length; i++){
            int smaller = Math.min(citations[i], citations.length-i);
            answer = Math.max(answer, smaller);
        }
        return answer;
    }
}
profile
초심 잃지 않기

0개의 댓글

관련 채용 정보