Post

[프로그래머스] H-Index

[프로그래머스] H-Index

▪︎ 문제


프로그래머스 H-Index


▪︎ 알고리즘 설계


  • 먼저 인용된 수를 정렬한 다음 하나하나 조건문을 통해 h번 이상 인용됐는 지 확인한다.
  • h번 이상 인용된 논문의 수를 세기 위해 count++ 해준다.
  • 그 다음, 전체 count의 수가 h번 이상이라면, h의 최댓값을 찾기 위해 h 값을 1씩 늘려준다. 그리고 다시 반복 ..
  • 만약 count < h인 순간이 된다면, 이전 단계까지가 h의 최댓값이였으므로 현재 h 값에서 1을 빼준 값을 return 한다.


▪︎ 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.*;

class Solution {
    public int solution(int[] citations) {
        int h = 0;
        
        Arrays.sort(citations);
        
        while (true) {
            int count = 0;
            
            for(int i = 0; i < citations.length; i++) {
                if (citations[i] >= h) {
                    count++;
                }
            }
            
            if (count >= h) {
                h++;
            } else {
                return --h;
            }
        }
    }
}


▪︎ 시간복잡도


O(n^2)


▪︎ 느낀점 / 기억할 정보


  • 문제 조건을 잘 파악하는 연습을 하자!
  • GPT 도움 없이 맞춰서 기분 좋당
This post is licensed under CC BY 4.0 by the author.