[Programmers] H-Index / python

숑숑·2021년 1월 5일
0

알고리즘

목록 보기
10/122

문제 설명

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

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

어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.

제한사항

  • 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다.
  • 논문별 인용 횟수는 0회 이상 10,000회 이하입니다.

📌 내 풀이

def solution(citations):
    for h in range(len(citations),-1,-1):
        cnt = len(list(filter(lambda x: x>=h, citations)))
        if cnt >= h: return h

이상한데 꽂혀서 오래 걸린 문제였다.

h번 이상 인용된 논문이 h편 이상이고,
그 나머지 논문 중 h번 이하 인용.. 이라고 서술되어있는데
애초에 h편 이상을 제외한 나머지 중에 h번 이하라고 서술한 의중은 무엇인가?
엄밀히 말하면 h번 미만이 맞다.

아주 사소한 단어 하나 차이지만 이거 때문에 불필요한 구현까지 할뻔했다.
이건 문제 설명 오류라고 생각한다...

✔ 배운 점

  • 또 한번에 정확한 의도를 캐치하지 못했다.
  • 문제만 잘 읽어도 반은 간다.
profile
툴 만들기 좋아하는 삽질 전문(...) 주니어 백엔드 개발자입니다.

0개의 댓글