코딩 테스트
[python3] 프로그래머스 레벨 2 - H-Index
귀건
2021. 6. 20. 04:22
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42747?language=python3#
코딩테스트 연습 - H-Index
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표
programmers.co.kr
# 최종답안
def solution(citations):
answer = 0
citations = sorted(citations)
c = []
for i in range(len(citations) + 1):
a = [j for j in citations if i >= j] # h번 이하
b = [j for j in citations if i <= j] # h번 이상
if i <= len(b) and i >= len(a):
c.append(i)
if len(c) != 0:
return max(c)
else :
return 0
처음 풀었을 때, 틀렸던 케이스는
- 모든 논문이 0회의 인용을 가졌을 때
- 답이 len(citations)회 일 때 ([22, 42], 2)
이 두가지 입니다.
이를 해결 하기 위해서 range를 len(citations + 1)회까지 범위를 설정하여 len(citations)를 확인할 수있도록 하였습니다.
모두 0회라면 반복문 내의 조건을 만족할 수 없기 때문에 0을 리턴합니다.
다른 사람의 풀이
프로그래머스 다른사람의 풀이는 너무 고인물이 많다 ㅠ
def solution(citations):
citations.sort(reverse=True)
answer = max(map(min, enumerate(citations, start=1)))
return answer
이 풀이는 가히 충격적.
728x90
반응형