Algorithm
[Algorithm] 프로그래머스 H-Index python
반응형
https://programmers.co.kr/learn/courses/30/lessons/42747
풀이
H-Index
는 n편의 논문 중, h번 이상 인용된 논문이 h편 이상인 h의 최대값이다.- 즉,
H-Index <= n
이다. - 인용 횟수를 순서대로 보기 위해
citations
를 정렬한다. - 가장 왼쪽에 있는 논문(
citations[0]
)은 가장 적게 인용된 논문이고, 이 논문의 오른쪽에 있는 값들은 이 논문보다 많거나 같게 인용된 논문이다. - 따라서 가장 왼쪽에 있는 논문의 인용 횟수(
citations[0]
)보다 많이 인용된 논문의 수를n
편이라 생각한다. citations[0] >= n
이라면,h = n
이다. 그렇지 않다면citations[1]
로 넘어간다.- 즉,
citations[i]
보다 많이 인용된 논문의 수를 해당 논문의 오른쪽에 있는 값들의 수(n-i)
라 생각하고,citations[i] >= n-i
를 비교한다. 조건을 만족한다면,h = n - i
이고, 그렇지 않다면 다음 값으로 넘어가 반복한다.
소스코드
def solution(citations):
n = len(citations)
citations.sort()
for idx, val in enumerate(citations):
if val >= n - idx:
return n - idx
return 0
🤐 사족
이게 뭔 소리야?? 처음에는 문제를 이해하지 못했다. 코드를 보면 매우 간단하지만, 푸는 데 조금 오래 걸렸다. 만약 코테에서 문제 자체를 이해하는데 막힌다면 일단 건너뛰고 다른 문제부터 해결해야겠다.
*위키피디아에 h-index
에 대한 설명이 잘 되어 있으니 참고하자!
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] 프로그래머스 소수 찾기 C++ (0) | 2021.10.25 |
---|---|
[Algorithm] 프로그래머스 모의고사 C++ (0) | 2021.10.24 |
[Algorithm] 프로그래머스 베스트앨범 c++ (Map 활용) (0) | 2021.10.07 |
[Algorithm] 프로그래머스 베스트앨범 python (0) | 2021.10.04 |
[Algorithm] 프로그래머스 위장 python (0) | 2021.10.01 |