[Python] 프로그래머스(Lv2) - H-Index

Kerri·2021년 4월 19일
0

코테

목록 보기
31/67

안녕하세요 !

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

풀이

처음에 풀때는 citations 에 있는 값으로만 for in 해서 돌렸는데
그렇게 하면 답이 안나옵니다.

예를 들어, citations = [10, 9, 4, 1, 1] 인 경우에는 답이 3이 되므로
최대값이 10부터 0까지 -1 해주면서 답을 찾았습니다.

0도 답이 될 수 있습니다! 0까지 안했다가 또 답이 틀렸었는데 0도 포함해서 for문 돌리니 맞았습니다.
citations = [0, 0, 0, 0] 이면 0이 답이 되야겠죠.
0이상인 값이 4개이므로 0이 답입니다.

이렇게 풀면 O(M* N)이라 느린데… 딕셔너리 이용해서 풀면 더빨라지지만 그냥 이렇게 제출했습니다.

def solution(citations):
    max_item = max(citations)
    for h in range(max_item, -1, -1):
        h_morethan = 0
        for item in citations:
            if item >= h:
                h_morethan += 1
        
        if h_morethan >= h:
            return h
profile
안녕하세요 !

0개의 댓글