[프로그래머스 Lv2] H-index(python)

이진규·2022년 3월 2일
1

프로그래머스(PYTHON)

목록 보기
31/64

문제

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

나의 코드 (답안참조)

"""
1. 아이디어

2. 시간복잡도

"""

def solution(citations):
    
    answer = 0
    
    citations.sort()
    n = len(citations)
    
    for i in range(n):
        
        # n - i 는 현재 논문을 가리키는 곳 기준 남은 논문의 개수
        if citations[i] >= n - i:
            return n - i
    
    return answer
    

설명

  1. citations를 오름차순 정렬한다.

  2. citiations의 값들을 현재 값 뒤에 있는 원소 갯수(현재 값보다 크거나 같은 수의 개수)와 비교한다. 현재 값이 뒤에 있는 원소 갯수보다 큰 경우 "h번 이상 인용된 논문이 h편 이상" 조건이 만족한다.

  3. 이 때 h 값인 뒤에 있는 원소 갯수를 반환한다.

  4. 반복문이 끝났을 때도 반환이 되지 않으면 0을 반환한다. 이 때는 모든 input이 0인 경우이다.(나도 구글링을 통해서 해당 테스트케이스를 참고해서 코드를 추가했다.)

  • "나머지 논문이 h번 이하 인용된 경우"는 안따져도 된다. 왜냐하면 오름차순 정렬 했기 때문에 ?

참고자료

https://moseory20.tistory.com/15?category=1171800

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글