원하는 것은 뭐든지
99클럽 코테 스터디 12일차 TIL , H-Index 본문
반응형
문제
풀이
들어는 본 것 같은 H-Index 말로만 보면 헷갈려서 예제를 보면서 이해하는 게 좋아 보인다.
일단 계산 방법은
- 발표된 논문 n
- 이 중 h번 이상 인용된 논문이 h 편 이상
- 나머지 논문이 h번 이하로 인용 (위에 기준이랑 겹치는 게 아닌지;;)
이면 이 사람의 H-Index는 h인 것이다.
1번 예제
입력 : [3,0,6,1,5]
0번 이상 인용된 논문은 5편, 나머지 논문은 없음
1번 이상 인용된 논문은 4편, 나머지 논문은 하나
2번 이상 인용된 논문은 3편, 나머지 논문은 둘
3번 이상 인용된 논문은 3편, 나머지 논문은 셋
4번 이상 인용된 논문은 2편.. 탈락
return 값은 3
2번 예제
입력: [1,2,3,4,5,6,7,8,9]
0번 이상 인용된 논문은 9편, 나머지 논문은 없음
1번 이상 인용된 논문은 9편, 나머지 논문은 없음
2번 이상 인용된 논문은 8편, 나머지 논문은 하나
3번 이상 인용된 논문은 7편, 나머지 논문은 둘
4번 이상 인용된 논문은 6편, 나머지 논문은 셋
5번 이상 인용된 논문은 5편, 나머지 논문은 넷
6번 이상 인용된 논문은 4편... 탈락
return 값은 5
제출 - 정답
class Solution {
public int solution(int[] citations) {
int answer = 0;
int[] quotation = new int[10001]; //인용횟수
int citation = citations.length; //논문 개수
int smaller = 0; //인용 이전 개수들
for(int x : citations){
quotation[x] += 1;
}
for(int i=0;i<=citation;i++){ //0부터 논문개수만큼
if(citation - smaller >= i
&& smaller <= i){
answer = i;
}else{
break;
}
smaller += quotation[i];
}
return answer;
}
}
h는 n을 넘을 수 없다.
0부터 앞으로 논문 개수만큼 반복문을 돌면서 인용된 횟수를 smaller에 저장해 준다.
전체 논문 개수에서 이전 인용의 수가 현재 인용수보다 같거나 크면 answer에 H-Idex를 갱신해 준다.
만약 조건에 부합하지 않으면 이후에도 부합하지 않기 때문에 break;
TIL
- 쉽게 생각하자
반응형
'개발 > 문제풀이' 카테고리의 다른 글
99클럽 코테 스터디 14일차 TIL , 숫자 카드 2 (0) | 2024.08.04 |
---|---|
99클럽 코테 스터디 13일차 TIL , 숫자 카드 (0) | 2024.08.04 |
99클럽 코테 스터디 11일차 TIL , 카드 뭉치 (0) | 2024.08.01 |
99클럽 코테 스터디 10일차 TIL , 이중우선순위큐 (0) | 2024.07.31 |
99클럽 코테 스터디 9일차 TIL , 더 맵게 (0) | 2024.07.31 |
Comments