ISTP의 간단명료 블로그

[프로그래머스] H-Index 테스트케이스 / 정렬 / 리스트 조건 본문

풀다

[프로그래머스] H-Index 테스트케이스 / 정렬 / 리스트 조건

djwis 2023. 7. 10. 20:47

문제

테스트케이스

풀이

def solution(citations):
    if max(citations)==0:
        return 0
    for h in range(max(citations), 0, -1):
        if len([x for x in citations if x>=h])>=h:
            return h

다른사람 풀이

def solution(citations):
    citations.sort(reverse=True)
    answer = max(map(min, enumerate(citations, start=1)))
    return answer

1) min(index,value) 부분은 index와 value 중에서 작은 값 찾기. 해당 인용수 이상의 논문개수와 해당 논문의 인용수 중 더 작은 숫자를 고르는 작업

ex) min(1, 6), min(2, 5), min(3, 4), min(4, 1), min(5, 0) -> (1, 2, 3, 1, 0)

2) max(~) 값은 가능할 수 있는 모든 h-index 중 가장 큰 값을 추출하는 부분. 앞에서 골라진 (1, 2, 3, 1, 0) 중 가장 큰 숫자를 뽑아 실제 h-index를 구하는 방법

느낀점

1. 테스트케이스를 생각할 때, 0의 경우의 수 생각해볼 것