728x90
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42747
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
def solution(citations):
citations.sort(reverse=True) # 내림차순 정렬
return max(min(i,v) for i,v in enumerate(citations,start=1))
# 해당 논문 인용 횟수 이상인 논문의 수와 해당 논문의 인용 횟수 중 더 작은 값이 문제에서의 h가 된다. 그 중 최댓값이 H-Index이다.
Tip
- 문제를 읽어보면 "h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다."와 같이 나와 있다. 즉, h를 구하기 위해서는 1. 특정 논문의 인용 횟수와 2. 해당 논문의 인용 횟수 이상으로 인용된 논문의 수에 주목해야 한다.
1. 특정 논문의 인용 횟수: citations를 정렬했을 때, citations에서 i번째에 위치한 논문의 인용 횟수를 v라 한다면, 해당 논문의 인용 횟수 이상으로 인용된 논문들의 인용 횟수는 모두 v보다 크거나 같다. 따라서 h값은 v보다 작거나 같아야 한다.
2. 해당 논문의 인용 횟수 이상으로 인용된 논문의 수: citations를 정렬했을 때, citations에서 i번째에 위치한 논문의 인용 횟수 이상으로 인용된 논문들의 수는 (i+1)편이다. 따라서 h값은 i+1보다 작거나 같아야 한다. - 따라서 v와 i+1 중 더 작은 값이 h값이 될 수 있고, h값들 중 최댓값이 H-Index가 된다.
TIL
없음
728x90
반응형
'Algorithm, 코딩테스트' 카테고리의 다른 글
[프로그래머스/코딩테스트 연습/Lv.2] 소수 찾기-파이썬(Python) (0) | 2022.11.12 |
---|---|
[프로그래머스/코딩테스트 연습/Lv.2] 큰 수 만들기-파이썬(Python) (0) | 2022.11.11 |
[프로그래머스/코딩테스트 연습/Lv.2] 구명보트-파이썬(Python) (2) | 2022.11.09 |
[프로그래머스/코딩테스트 연습/Lv.2] 가장 큰 수-파이썬(Python) (0) | 2022.11.07 |
[프로그래머스/코딩테스트 연습/Lv.3] 이중우선순위큐-파이썬(Python) (0) | 2022.11.06 |