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
citations를 오름차순 정렬한다.
citiations의 값들을 현재 값 뒤에 있는 원소 갯수(현재 값보다 크거나 같은 수의 개수)와 비교한다. 현재 값이 뒤에 있는 원소 갯수보다 큰 경우 "h번 이상 인용된 논문이 h편 이상" 조건이 만족한다.
이 때 h 값인 뒤에 있는 원소 갯수를 반환한다.
반복문이 끝났을 때도 반환이 되지 않으면 0을 반환한다. 이 때는 모든 input이 0인 경우이다.(나도 구글링을 통해서 해당 테스트케이스를 참고해서 코드를 추가했다.)