H-Index
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 내 풀이
- citations를 정렬한 후, 이진 탐색으로 가능한 H-Index 후보를 탐색
- bisect_left(citations, mid)는 mid 이상 인용된 논문 개수를 빠르게 계산하기 위해 사용
- 조건 n - idx >= mid를 만족하면 가능한 H-Index 후보로 저장하고 범위를 오른쪽으로 확장
- n-idx : mid값보다 큰 수의 갯수
- 최댓값을 찾기 위해 answer = max(answer, mid)로 갱신
from bisect import bisect_left
def solution(citations):
answer = 0
citations.sort()
n=len(citations)
l,r=0,10000
while l<=r:
mid=(l+r)//2
idx=bisect_left(citations,mid)
if n-idx>=mid:
l=mid+1
answer=max(answer,mid)
else:
r=mid-1
return answer
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스][메모이제이션] 풍선 터트리기 (0) | 2025.06.19 |
|---|---|
| [프로그래머스][정렬] 인사고과 (0) | 2025.06.09 |
| [프로그래머스] 완전 범죄 (1) | 2025.06.01 |
| [프로그래머스][BFS] 혼자 놀기의 달인 (0) | 2025.05.29 |
| [프로그래머스][그리디][백트래킹] 광물 캐기 (8) | 2025.05.28 |