https://school.programmers.co.kr/learn/courses/30/lessons/42747
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
"""
입출력 예시)
citations = [3, 0, 6, 1, 5] -> 3
"""
def solution(citations):
# citations를 내림차순으로 정렬
citations.sort(reverse=True)
for h, citation in enumerate(citations):
if h >= citation:
return h # 인용된 수가 발표한 논문의 수와 같거나 작아지기 시작하는 숫자
return len(citations)
-> 마지막에 return len(citations) 없이 그냥 return h 만 하고 제출했더니 테스트 케이스 한개에서 실패했다...
[연구논문을 위한 핵심 10단계] H-지수(H-Index) 란 무엇인가?
일반적으로 특정 연구원의 연구성과를 평가하기 위해 얼마나 많은 논문을 발표 하였는지를 보게됩니다. 그러나 단순히 발표한 논문 수로만 그 연구원의 연구 업적을 평가 하기에는 발표한 논문
www.ibric.org
H-Index 문제는 오름차순과 내림차순 모두 가능하다.
def solution(citations):
# citations를 내림차순으로 정렬
citations.sort(reverse=True)
for h, citation in enumerate(citations):
if h >= citation:
return h # 인용된 수가 발표한 논문의 수와 같거나 작아지기 시작하는 숫자
return len(citations)
"""
citations 내림차순 정렬: [6, 5, 3, 1, 0]
h: 0
citation: 6
h: 1
citation: 5
h: 2
citation: 3
h: 3
citation: 1
3
"""
def solution(citations):
# citations 오름차순 정렬
citations.sort()
# 과학자가 발표한 논문의 수
n = len(citations)
for i in range(n):
# citations[i] -> i번 논문이 인용된 횟수
# n-i -> 인용된 논문의 개수를 최댓값부터 하나씩 줄여나간 것(최댓값을 찾아야 하므로 가장 큰 값부터 시작)
if citations[i] >= n-i: # h번 이상 인용된 논문이 h편 이상일 때
return n-i
return 0
"""
citations 오름차순 정렬: [0, 1, 3, 5, 6]
n: 5
i: 0
citations[i]: 0
n-i: 5
i: 1
citations[i]: 1
n-i: 4
i: 2
citations[i]: 3
n-i: 3
3
"""
참고)
https://yunaaaas.tistory.com/56
[Python - 프로그래머스 Level2] H-Index
코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합
yunaaaas.tistory.com
https://velog.io/@jiffydev/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-89-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-H-Index
파이썬 알고리즘-89 (프로그래머스) H-Index
dd
velog.io