코딩테스트/프로그래머스

[프로그래머스] [Level 2] [정렬] H-Index

박소민 2022. 4. 21. 17:04
H-Index
 

코딩테스트 연습 - H-Index

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표

programmers.co.kr

 

  • 내 풀이
    • 계수정렬 방식 참고해서 각 값의 횟수를 가지는 result 리스트 생성
    • 큰 값부터 횟수 더해서 인덱스 값과 크거나 같은 값 중 가장 큰 값 출력
    • 📍for idx,r in enumerate(result[::-1])
      • 맨 마지막 인덱스부터 불러오더라도 출력되는 인덱스는 0부터
      • → 구하려는 인덱스 값: len(result)-1-idx
def solution(citations):
    result=[0]*(max(citations)+1)
    answer=0
    sum=0
    for c in citations:
        result[c]+=1
    for idx,r in enumerate(result[::-1]):
        sum+=r
        if sum>=len(result)-1-idx:
            answer=max(answer,len(result)-1-idx)
            
    return answer

 

  • 다른 사람 풀이
def solution(citations):
  citations=sorted(citations)
  l=len(citations)
  for i in range(l):
    if citations[i]>=l-i:
      return l-i #l-i 값이 큰 값의 개수와 같음
  return 0
print(solution([3,0,6,1,5]))
#결과
3