[프로그래머스 | Python] H-Index

게으른 완벽주의자·2023년 1월 25일
0

프로그래머스

목록 보기
7/83
post-custom-banner

프로그래머스_H-Index

h번 이상 인용된 논문이 h편 이상일 때, h의 최댓값을 H-Index라고 한다

처음에는 for문을 두 번 돌려서 답을 받았다
cnt>=h인데 cnt==h로 해서 테스트 11번을 통과하느라 애를 먹었다

내 답안 코드

def solution(citations):
    answer = 0
    citations.sort()
    n = len(citations)
    for h in range(max(citations)+1,-1,-1):
        cnt = 0
        for i in range(n):
            if citations[i]>=h:
                cnt+=1
        if cnt>=h:
            answer = h
            break
    
    return answer

하지만 이 문제는 정렬문제이기 때문에 좀 더 간단한 답변이 있을거라고 생각해서 더 찾아봤다

추가 답안 코드

def solution(citations):
    answer = 0
    citations.sort()
    n = len(citations)
    for i in range(n):
        if citations[i]>=n-i:
            answer = n-i
            break
        
    return answer

citations[i] >= n-i 라는 코드가 'h번 이상 인용된 논문이 h편 이상'이라는 말이라는걸 이해하기 약간 힘들었다
부족한 말주변으로 설명해보자면 citations을 오름차순으로 정렬했기 때문에 citations[i]가 n-i(남은 논문 갯수) 이상이라면, 그 뒤의 인용횟수들도 n-i보다 크기 때문에, 정답이 된다

profile
데이터를 공부하고 있습니다
post-custom-banner

0개의 댓글