본문 바로가기

알고리즘 공부/프로그래머스 > Python3

[프로그래머스] H-Index

https://programmers.co.kr/learn/courses/30/lessons/42747

 

코딩테스트 연습 - H-Index

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

programmers.co.kr

<문제에서 주목해야 할 사항>

어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. → h편 이상과 h편 이하

 

 

[정답]

 

1. 논문별 인용 횟수를 알아보기 위해 for문을 0~len(citations)만큼 돈다. (0회~(논문의 개수)회)

2. 인용된 논문을 yes, 인용되지 않은 논문을 no에 넣어주기 위해 0,0으로 초기화해준다.

3. citations[k]가 만약 i보다 크다면, 즉 i번초과 인용되었다면 yes에 1을 더한다. citations[k]가 만약 i보다 작다면, 즉 i번미만 인용되었다면 no에 1을 더한다. 그 외(citations[k]==i의 경우)는 yes와 no에 각각 1을 더한다.

4. 리스트 citations와 i의 비교가 끝나고, 만약 yes>=i이고 no<=i이면( i번 인용된 논문이 i편 이상이고 나머지 논문이 i번 이하 인용되었을 경우) 일단 i를 최댓값으로 보고 answer에 넣어준다. for문을 돌면서 answer값을 갱신한다.

5. answer을 return한다.