알고리즘/프로그래머스
[정렬] H-Index - Python / JavaScript
Dev. Dong
2025. 3. 29. 14:06
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/42747
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제 간단 요약]
1. H-Index 지표를 구하는 문제
2. 논문 n편 중, h번 이상 인용된 논문 h 편 이상인 h의 최댓값을 구하는 문제
[문제 해결 방안]
1. 배열을 역순으로 정렬하여 논문 인용 수 보다 논문 수(배열의 index + 1)가 작을 때의 논문 수 - 1 값이 정답
2. 모든 논문이 자신보다 많은 인용을 받았다면 H-Index는 전체 논문 수 정답
[예시]
논문 인용 수 | 논문 수 | 조건 부합 |
6 | 1 | ✅ |
5 | 2 | ✅ |
3 | 3 | ✅ |
1 | 4 | ❌ |
0 | 5 | ❌ |
논문 인용 수 | 논문 수 | 조건 부합 |
6 | 1 | ✅ |
6 | 2 | ✅ |
6 | 3 | ✅ |
6 | 4 | ✅ |
6 | 5 | ✅ |
[문제 해결 코드 - python]
def solution(citations):
answer = 0
citations.sort(reverse = True)
for i, citation in enumerate(citations):
if citation < i+1:
return i
break
return len(citations)
[문제 해결 코드 - javascript]
function solution(citations) {
var answer = 0;
let resort_citations = citations.sort((a,b) => (b-a))
for (let i = 0; i < citations.length; i++) {
if (citations[i] < i+1) {
return i
}
}
return citations.length;
}