본문 바로가기
공부-코딩테스트/코테풀이 - 자바, 파이썬

H-Index (코딩테스트, 프로그래머스,파이썬)

by 령과 2022. 2. 18.

문제

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

 

코딩테스트 연습 - H-Index

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

programmers.co.kr

나의 코드

def solution(citations):
    for i in reversed(range(0,max(citations)+1)):
        up=len([j for j in citations if i<=j])
        down=len(citations)-up
        if up>=i and down<=i:
            return i

 

H-index값을 구하기 위해서 0개, 1개 ....식으로 탐색을 진행해야 한다. 

최댓값을 구하는 것인데 답이 될 수 있는 모든 경우의 수를 생각해 본다면 0~(citations에 있는 값 중 가장 큰 값)이 될 것이다. 따라서 range를 사용해서 0~ 가장 큰 값을 하고 reversed를 사용해서 뒤집은 다음 조건을 만족하면 바로 return하는 식으로 가장 큰 값을 return하도록 처리하였다.

나머지 개념은 단순구현으로 코드를 작성하였다 [ for문 if문 ]으로 조건에 부합하는 요소들의 개수를 얻었다.

댓글