본문 바로가기

Development/CodingTest

[정렬] 프로그래머스 level 2 H-Index python 풀이

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

처음 문제 접근

citations 각 요소들을 비교하면서 인용 횟수를 세야하나..? 그럼 이중 for문을 써야 하나..? 그래도 뭔가 이상한데.. 

다시 문제 접근

1. 가장 인용횟수가 높은 논문 인덱스부터 정렬한 후

2. 0회 인용 횟수부터 시작해서 논문 하나씩 비교해 나가면서 +1 하다가

3. 인용 횟수보다 더 낮은 인용 횟수의 논문이 나오면 break

이런 식으로 간단히 풀 수 있었다..

코드

def solution(citations):
    answer = 0
    citations = sorted(citations, reverse=True)
    for i in range(len(citations)):
        if citations[i] > answer:
            answer = i+1
        else:
            break
    return answer