[Java Algorithm] 프로그래머스 Lv.2 _ H-Index

2025. 7. 30. 17:42·Algorithm Study

[문제]

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다.
위키백과에 따르면, H-Index는 다음과 같이 구합니다.
어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.
어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.

제한사항
- 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다.
- 논문별 인용 횟수는 0회 이상 10,000회 이하입니다.

 

[Algorithm]

1. citations 배열을 오름차순으로 정렬

2. 배열을 순서대로 반복하면서 해당 인덱스 기준 남아있는 인덱스들의 개수(논문의 개수)가 해당 인덱스 값보다 크거나 같으면 그 인덱스의 값이 h

 

[Code]

import java.util.Arrays;

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

 

 

[+ 다른 사람 풀이]

import java.util.*;

class Solution {
    public int solution(int[] citations) {
        Arrays.sort(citations);

        int max = 0;
        for(int i = citations.length-1; i > -1; i--){
            int min = (int)Math.min(citations[i], citations.length - i);
            if(max < min) max = min;
        }

        return max;
    }
}

 

모든 인덱스에서 가능한 H-Index를 계산하고 그 중 최대값을 구하는 방식

모든 경우의 수를 구하기 때문에 효율성 측면에서 떨어질 수도 있음..

 

 

 

이 문제는 문제 읽을 때부터 뭐 좀 거지같다 생각해서 알고리즘 생각도 안났음 ..

저작자표시 변경금지 (새창열림)

'Algorithm Study' 카테고리의 다른 글

[Java Algorithm] 프로그래머스 Lv.1 _ 모의고사  (2) 2025.07.31
[Java Algorithm] 프로그래머스 Lv.1 _ 최소직사각형  (2) 2025.07.30
[Java Algorithm] 프로그래머스 Lv.2 _ 가장 큰 수  (4) 2025.07.30
[Java Algorithm] 프로그래머스 Lv.1 _ K번째수  (2) 2025.07.29
[Java Algorithm] 프로그래머스 Lv.3 _ 베스트앨범  (1) 2025.07.28
'Algorithm Study' 카테고리의 다른 글
  • [Java Algorithm] 프로그래머스 Lv.1 _ 모의고사
  • [Java Algorithm] 프로그래머스 Lv.1 _ 최소직사각형
  • [Java Algorithm] 프로그래머스 Lv.2 _ 가장 큰 수
  • [Java Algorithm] 프로그래머스 Lv.1 _ K번째수
microsaurs
microsaurs
개발 스터디로그입니다. 공부한 내용을 정리해서 올립니다 ㅇ-ㅇ
  • microsaurs
    microsaurs.devlog
    microsaurs
  • 전체
    오늘
    어제
    • 분류 전체보기 (157)
      • Side Project (4)
      • Algorithm Study (53)
      • JAVA (8)
      • Swift (11)
      • Python (21)
      • CS (5)
      • React (3)
      • 리얼클래스 studylog (27)
      • 정보처리기사[실기] (23)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    정처기실기
    study
    정보처리기사실기
    리얼학습일기
    파이썬기초
    Python
    정보처리기사프로그래밍언어
    프로그래밍언어
    javaalgorithm
    타일러영어
    ios프로그래밍을위한스위프트기초
    정보처리기사
    리얼클래스
    javaStudy
    파이썬문법
    알고리즘
    영어독학
    더오피스
    나도코딩
    영어회화
    자바알고리즘
    The Office
    파이썬
    ios프로그래밍
    프로그래머스
    Algorithm
    Java
    스위프트기초
    ios개발
    SWIFT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
microsaurs
[Java Algorithm] 프로그래머스 Lv.2 _ H-Index
상단으로

티스토리툴바