728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42747
나의 풀이
h-index란 특정 연구원의 연구 성과를 평가하기 위해 만들어졌고 인용수와 논문의 개수를 가지고 구할 수 있다.
인용수를 내림차순으로 정렬하고 누적 논문 수와 비교했을 때 논문 수가 인용수보다 작아지기 시작하는 숫자이다.
인용수 Citations | 논문 수 |
6 | 1 |
3 | 2 |
2 | 3 |
1 | 4 |
위의 논문에서 h-index는 2이고
이는 논문 인용수가 2가 넘는 논문은 적어도 2개 있다는 뜻이다.
인용수 Citations | 논문 수 |
6 | 1 |
3 | 2 |
3 | 3 |
1 | 4 |
위의 논문에서 h-index는 3이고
이는 논문의 인용수가 3이 넘는 논문은 적어도 3개 있다는 뜻이다.
def solution(citations):
citations.sort(reverse=True)
for i, c in enumerate(citations):
print(i,c)
if i >= c:
return i
return len(citations)
다른 사람의 풀이
def solution(citations):
citations.sort(reverse=True)
answer = max(map(min, enumerate(citations, start=1)))
return answer
다음 식을 풀어서 보면 아래와 같다.
print(list(enumerate(citations, start=1)))
print(list(map(min, enumerate(citations, start=1))))
enumerate를 이용하여 인용수에 index를 합쳐 list를 만들었고 둘 중에 작은 값을 list에 넣는다.
그렇게 했을 때 가장 큰 수는 h-index가 된다.
(x, y) 라고 좌표를 봤을 때 이 둘의 숫자가 모두 큰 값이 나오면서 차가 크지 않는 수를 뽑아낸다는 아이디어를 사용한 것 같다.
728x90
'Coding Test > programmers' 카테고리의 다른 글
[Python] 파이썬 프로그래머스 튜플 (0) | 2023.02.10 |
---|---|
[Python] 파이썬 프로그래머스 캐시 (0) | 2023.02.10 |
[Python] 파이썬 프로그래머스 무인도 여행 (0) | 2023.02.09 |
[Python] 파이썬 프로그래머스 호텔 대실 (0) | 2023.02.08 |
[Python] 파이썬 프로그래머스 위장 (0) | 2022.11.24 |