티스토리 뷰
더보기
import java.util.*;
class Solution {
// 문제 :
// + H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다.
// + 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다.
// + 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고
// + 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.
public int solution(int[] citations) {
// + 예외 케이스 : 논문이 1개인 경우 H-Index는 반드시 1이다.
if ( citations.length == 1 ){
return 1;
} // if
// + H-Index를 구하기 위해서는 먼저 오름차순 정렬을 통해 인용된 횟수를 정리해야 한다.
// + -> 최댓값을 구하는 것이기 때문에 원소를 천천히 올라가면서 확인해보면 된다.
Arrays.sort(citations);
// + H-Index를 저장할 변수 answer 생성
int answer = 0;
for ( int i = 0; i < citations.length; i++ ){
// + 인용된 횟수가 i라고 했을 때, i번 이상 인용된 논문의 수
// + 오름차순 정렬하였기에, 논문 배열의 길이 - 인덱스 번호가 인용된 논문의 수가 된다.
int h = citations.length - i;
// + 논문 인용횟수가 h번 이상인 논문이 h개 이상인지 확인
if ( citations[i] >= h ) {
answer = h;
break;
} // if
} // for
return answer;
} // solution
} // end class
[ 참고한 블로그 ]
https://yubh1017.tistory.com/23
[JAVA] 프로그래머스 : H-Index (코딩테스트 고득점 kit > 정렬)
https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키
yubh1017.tistory.com
728x90
'코딩 테스트 [ 연습 ]' 카테고리의 다른 글
프로그래머스 - 입문 - 피자 나눠 먹기 1 (0) | 2022.12.05 |
---|---|
프로그래머스 - 스택 / 큐 - 같은 숫자는 싫어 (0) | 2022.11.28 |
프로그래머스 - SELECT - 과일로 만든 아이스크림 고르기 (0) | 2022.11.23 |
프로그래머스 - 정렬 - 가장 큰 수 (0) | 2022.11.23 |
프로그래머스 - 탐욕법 ( Greedy ) - 구명 보트 (0) | 2022.11.01 |
댓글