[프로그래머스]H-Index(JAVA)
문제
내 코드
public int solution(int[] citations) {
int hmax = 0;
//1
Arrays.sort(citations);
int t=0;
while(true) {
//2
for(int i=t; i<citations.length; i++) {
if(hmax <= citations[i]) {
//2-1
if(hmax > citations.length-i || hmax < i) {
return hmax-1;
}
t=i;
break;
}
//3 한번도 인용된 논문이 없을 경우
if(i == citations.length-1 && citations[i] == 0)
return 0;
}
hmax += 1;
}
}
풀이
결국 주어진 정수형 배열을 정렬해서 h-index값을 0부터 하나씩 증가시켰고, 문제에서 주어진 조건에 부합하는 h-index를 찾으려고 했다.
1. 주어진 정수형 배열을 정렬한다.
2. 정렬된 배열의 길이 만큼 반복문을 돌면서, hmax(h-index)가 citations[i] 보다 작거나 같을경우 i를 증가시키지 않고 hmax만 1 증가 시켰다.
2-1. 1씩 증가된 hmax가 문제에서 주어진 조건을 벗어날 경우 그 이전 hmax값을 반환한다.
3. 마지막으로 한번도 인용된 논문이 없을경우 0을 반환해준다.
Author And Source
이 문제에 관하여([프로그래머스]H-Index(JAVA)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jess29/프로그래머스H-IndexJAVA저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)