프로그래머스 - H-Index

태태·2023년 5월 18일
0

문제

알고리즘분류)

  • 정렬

풀이

문제에서 요구하는 것은 n개의 배열요소 중, h이상인 값이 h개 이상이 되는 가장 최댓값을 묻는다
배열을 내림차순 정렬한 뒤 하나씩 값을 비교해 가며 배열의값과 인덱스의값을 비교하는 식으로구현했다
문제를 풀고 난 후 경우의 수를 3가지 생각할 수 있었다

예1) [1,2,3,4,5,6,7] (배열[i]값이 i값과 같은 경우)
7부터 수를 살펴보자, 7이상인 수가 7개 이상이지 않으므로 패스
그다음 6이상인 수가 6개 이상이 아니므로 패스
...
4이상인 수가 4개 이상이므로 이경우 H-Index는 4이다

예2) [1,2,5,6,7,8] (배열[i]값이 i값보다 적어지는 경우)
8이상인 수가 8개 이상이 아니므로 패스
...
2이상인 수가 2개 이상이지만 4도 만족하므로
H-Index는 4이다

예3) [10,10,10,10,10] (모든 배열[i]값이 인덱스값보다 큰 경우)
반복문을 끝까지 정상적으로 마치는 경우이다
그러므로 H-Index는 5(배열의 길이)이다


소스코드

python)

def solution(citations):
    citations.sort(reverse=True)
    for i in range(0,len(citations)):
        if citations[i] == i+1:
        
            return i+1
        elif citations[i] < i+1:
            
            return i
    return len(citations)
profile
과정에서 재미를 느끼지 않는데 성공하는 일은 거의 없다

0개의 댓글