본문 바로가기
코딩테스트

[프로그래머스] 정렬 - H-index

by 박매트 2024. 2. 1.

 

나의 답

def solution(citations):
    max_value = []
    for a in range(len(citations),0,-1):
        cnt_t = 0
        for i in citations:
            if i >= a:
                cnt_t+=1
        if (len(citations)-cnt_t) <= a and cnt_t >=a :
            return a
            
    return 0

 

문제를 해석한 대로....... 2중 포문을 사용하고 말았다.

분명 간단한 방법이 있을 것 같았는데, 역시나 다른 분들의 풀이는 간결했다.

 

 

 

다른 사람 답

def solution(citations):
    citations = sorted(citations)
    l = len(citations)
    for i in range(l):
        if citations[i] >= l-i:
            return l-i
    return 0

 

l-i : i인덱스 값과 같거나 큰 수의 개수

citations 배열 자체가 횟수들이 모여있고 그걸 sort 하니까 바로 검사할 수 있는 거군....

 

시간 복잡도를 위해서 h-index가 큰 경우부터 검사하고 조건에 만족하면 출력............

조건 확인을 이렇게 하다니.......