문제
https://school.programmers.co.kr/learn/courses/30/lessons/42747
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
입출력

해설
해당 문제는 H-Index에 관한 문제이다.
H-Index는 n편 중에서 h번 이상 인용된 것이 h편 이상이고, 나머지가 h번 이하 인용되었을 때 h의 최댓값을 H-Index라고 한다.
정렬에 관한 문제이다.
문제에 입력을 정렬하여 보면 [0, 1, 3, 5, 6]이 된다.
해당 index와 value에 관점에서 보면 2(index), 3(value)가 전체 - index가 h번 이상 인용된 것이라고 볼 수 있다.
그리고 index가 h번 이하 인용되었다고 볼 수 있다.
하지만 그대로 풀게 되면 틀리게 되는데, 이 문제의 KeyPoint는 H-Index 값이 입력으로 들어오는 value 안에서 일어나지 않을 수도 있다.
그렇기 때문에 range를 전체로 돌리면 된다.
정답코드
더보기
'''
'25. 08. 31
1. H-index 는 n편 중 h번 이상 인용된 논문이 h편 이상이고, 나머지 논문은 h번 이하 인용되었다면, h의 최댓값이 h-index이다.
0, 1, 3, 5, 6
정렬한 뒤 해당 숫자와 값을 통해서 몇 편인지 알 수 있다.
0 0 0 0 0
'''
from bisect import bisect_left as bl
def solution(citations):
answer = -1
citations.sort()#최소와 최대
size = len(citations)
for i in range(10001):
idx = bl(citations, i)
if i <= size - idx and idx <= i:
answer = max(i, answer)
return answer
깃허브 : https://buly.kr/C0APGhS
'코딩테스트 > programmers' 카테고리의 다른 글
| 프로그래머스 / 구현 / 기능개발 (0) | 2025.09.02 |
|---|---|
| 프로그래머스 / 구현 / 행렬의 곱셈 (0) | 2025.08.31 |
| 프로그래머스 / 구현 / n^2 배열 자르기 (0) | 2025.08.30 |
| 프로그래머스 / 스택 / 괄호 회전하기 (0) | 2025.08.24 |
| 프로그래머스 / 슬라이딩 윈도우 / 할인 행사 (0) | 2025.08.24 |