알고리즘 공부/프로그래머스
(Java)프로그래머스 코딩테스트 연습 - 정렬 - H-Index
HRuler
2020. 10. 28. 15:02
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42747
코딩테스트 연습 - H-Index
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표
programmers.co.kr
2. 나의 풀이
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Integer [] citations_copy = new Integer [citations.length];
int i = 0;
for(int imsi : citations) citations_copy[i++] = imsi;
Arrays.sort(citations_copy, Collections.reverseOrder());
int imsi = 0;
for(i = 0; i < citations_copy.length; i = i + 1) {
if(citations_copy[i] >= i + 1) {
imsi = i + 1;
}else if(citations_copy[i] < i + 1) {
break;
}
}
answer = imsi;
return answer;
}
}
3. 다른 사람 풀이
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;
}
}