유형 : 정렬
시간 : 10분, 인터넷 검색
*h회 이상 인용된 논문이 h개 이상* 있으면 모두 후보가 된다.
def solution(citations):
answer = 0
citations.sort(reverse = True)
true = []
for i in range(len(citations)):
if i + 1 <= citations[i]:
true.append(i+1)
if true:
return max(true)
else:
return 0
따라서, i+1 (현재 그 논문보다 많이 또는 똑같이 인용된 논문의 개수) 가 현재 논문 인용 횟수보다 많으면 h-index의 후보가 될 수 있다.
예)
[9, 9, 9, 9, 9] 인 경우
h = 5가 되어야 한다. 0이 아니라!
이런 경우를 모두 고려하기 위해서, 주어진 조건을 만족하는 경우 모두 true 배열에 append한 뒤 true 배열의 max 값을 return하도록 하였다.
'프로그래머스 > Lv. 2' 카테고리의 다른 글
14. 카펫 (완전 탐색) (0) | 2024.07.18 |
---|---|
13. 소수 찾기 (완전 탐색) (1) | 2024.07.18 |
11. 가장 큰 수 ★★ (정렬) (0) | 2024.07.18 |
10. 주식가격 (스택/큐) ★★ (0) | 2024.07.18 |
9. 다리를 지나는 트럭 ★ (스택/큐, sum함수의 시간 복잡도, deque) (0) | 2024.07.18 |