눈송이의 개발생활

[Programmers Lv.2]H-Index (Python) 본문

Algorithm/Programmers

[Programmers Lv.2]H-Index (Python)

꾸지새미언니

문제

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

내 코드 

def solution(citations):
    count = 0
    citations.sort()
    for i in range(citations[-1] + 1):
        new_c = [j for j in range(len(citations)) if citations[j] >= i]
        if len(new_c) >= i:
            count = i
        else:
            break

    return count

다른 사람 풀이 

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

해결 방법

h번 이상 인용된 논문이 h편 이상이면 h가 H-Index가 된다.

h번 이상 인용된 논문을 찾기 위해 for문을 돌면서 h이상의 숫자로만 이루어진 새로운 배열을 만들었다. 

h편 이상인 것을 알기 위해 새로 만든 배열의 길이를 구하고 그 길이가 h 이상인지 비교하였다. 

 

다른 사람은 배열에 있는 원소만 고려하고 풀었는데, 나는 h가 배열 안에 있는 수가 아닐 경우도 생각해서 풀어서 다른 풀이가 나온 것 같다. 

다른 사람 풀이에서 l-i은 논문의 개수를 뜻한다. 

새로운 배열을 만드는 생각만 하면 금방 풀 수 있었는데, 그 생각을 못해서 결국 검색해서 힌트를 얻어 풀었다. 

Comments