이번 문제는 진짜 문제를 이해하는데 많은 시간이 들었다.
문제가 뭔소린지 모르니 문제를 풀줄도 몰랐다. 그래서 풀이를 봤지만 풀이를 봐도 이해를 할수가 없었다.
내가 이해가 바로 갔던 사이트는 아래 사이트였다.
https://www.ibric.org/myboard/read.php?Board=news&id=270333
[연구논문을 위한 핵심 10단계] H-지수(H-Index) 란 무엇인가?
일반적으로 특정 연구원의 연구성과를 평가하기 위해 얼마나 많은 논문을 발표 하였는지를 보게됩니다. 그러나 단순히 발표한 논문 수로만 그 연구원의 연구 업적을 평가 하기에는 발표한 논문
www.ibric.org
위 사이트에서 보고 내가 이해한 것은 아래와 같다.
h-index를 구하는 이유는 논문 쓴 사람의 논문의 영향력? 같은걸 확인하기 위해서이다.
그걸 알려면 일단 내가 쓴 논문들을 인용수를 제일 큰수부터 나열해야한다.
그럼 나의 인용수에 따른 논문들이 몇편인지 나올텐데 거기서 인용수와 해당 논문에 따른 나의 논문 편수가 같아지면
그게 h-index가 되는것이다.
따라서 논문수도 많고 인용수도 많아지게 되면 h-index가 커지기 때문에 h-index가 크면 권위있는 학자나 단체로 볼수 있다.
그럼 이제 소스를 보자.
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
//오름차순으로 정렬
Arrays.sort(citations);
int len = citations.length;
for(int i = len; i>0;i--){
if(citations[len-i] >= i ){
answer = i;
break;
}
}
return answer;
}
}
일단 인용수를 오름차순으로 정렬했고 그다음엔
index가 인용수보다 커질때 index를 answer에 넣고 break하게 하였다.
참조 사이트 : https://blog.naver.com/hyoun1202/222114539364
프로그래머스 "코딩테스트 연습>정렬>H-Index" 문제풀이
이 문제는 일단 문제 자체를 이해하는것 부터가 어렵습니다. 문제 설명란에 링크되어 있는 '위키백과&...
blog.naver.com
느낀점
1. 문제가 뭘 원하는지 알자.
2. 규칙을 찾아보려고 해보자.
3. 모를땐 주변분들에게 여쭤보자.
'코딩일기 > 알고리즘' 카테고리의 다른 글
[프로그래머스 : 레벨2] 소수 찾기 : 재귀호출 (Java) (0) | 2021.06.08 |
---|---|
[프로그래머스 : 레벨1] 모의고사 (Java) (0) | 2021.06.08 |
[자료구조] 퀵정렬 (Java) (0) | 2021.06.04 |
[프로그래머스 : 레벨 2] 가장 큰수 : Array.sort 와 퀵정렬 (Java) (0) | 2021.06.03 |
[프로그래머스 : 레벨1] K번째 수 : 선택정렬(Java) (0) | 2021.06.02 |