728x90
안녕하세요. 그린주입니다 ๑'ٮ'๑
프로그래머스 코딩 테스트 시작!
문제 설명
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다.
어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다.
위키백과 1에 따르면, H-Index는 다음과 같이 구합니다.
어떤 과학자가 발표한 논문 n 편 중, h번 이상 인용된 논문이 h 편 이상이고
나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.
어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때,
이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.
제한사항
과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다.
논문별 인용 횟수는 0회 이상 10,000회 이하입니다.
예제 #1
입출력 예
int[] citations = {3, 0, 6, 1, 5}
입출력 예 설명 // 정답 : 3
이 과학자가 발표한 논문의 수는 5편이고, 그중 3편의 논문은 3회 이상 인용되었습니다.
그리고 나머지 2편의 논문은 3회 이하 인용되었기 때문에 이 과학자의 H-Index는 3입니다.
내 코드
import java.util.Arrays;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Arrays.sort(citations);
for (int i = 0; i < citations.length; i++) {
// h편
int h = citations.length - i;
// 인용된 횟수가 h편 이상일 때
if (citations[i] >= h) {
answer = h;
return answer;
}
}
return answer;
}
}
좋아요 한 코드
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;
}
}
긴 글 봐주셔서 감사합니다!
오늘도 행복한 하루 보내세요 ✿'◡'✿
참고
[JAVA] 프로그래머스 : H-Index (코딩테스트 고득점 kit > 정렬)
728x90
728x90
'🌜 Algorithm > Programmers' 카테고리의 다른 글
2021 Deb-Matching: 웹 백엔드 개발자(상반기) - 로또의 최고 순위와 최저 순위 ( 프로그래머스 / JAVA ) (0) | 2022.07.12 |
---|---|
2022 KAKAO BLIND RECRUITMENT - Lv1 신고 결과 받기 ( 프로그래머스 / JAVA ) (0) | 2022.07.08 |
정렬 - Lv2 가장 큰 수 ( 프로그래머스 / JAVA ) (0) | 2022.04.12 |
정렬 - Lv1 K번째수 ( 프로그래머스 / JAVA ) (0) | 2022.04.06 |
스택/큐 - Lv4 주식가격 ( 프로그래머스 / JAVA ) (0) | 2022.04.06 |