문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42747
문제 설명
어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용 되었다면, h의 최대값이 이 과학자의 H-Index이다.
어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 함수를 작성
제한사항
- 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다.
- 논문별 인용 횟수는 0회 이상 10,000회 이하입니다.
풀이
h가 가질수 있는 최대값은 citations 리스트의 길이이고,
citations 리스트를 정렬 후, h번 인용된 논문이 citations의 논문의 인용 횟수보다 작을 때까지 반복문을 돌아,
h번 이상 인용된 논문 변수와 나머지 논문 변수에 적절히 넣어주어,
조건에 따라 답을 구했다.
✅ Code - 성공
def solution(citations):
answer = 0
citations.sort()
for h in range(len(citations) + 1): # h이 가질 수 있는 최대값 = 논문의 수
up_cit, remain_cit = 0, 0 # h번 이상 인용된 논문, 나머지 논문
for i in range(len(citations)):
if h <= citations[i]:
up_cit, remain_cit = len(citations) - i, i
break
if up_cit >= h and remain_cit < h:
answer = h
return answer
'알고리즘 문제 > 프로그래머스_Lv2 도장깨기' 카테고리의 다른 글
[프로그래머스] 카펫 (Python) (0) | 2024.05.16 |
---|---|
[프로그래머스] 소수 찾기 (Python) (1) | 2024.05.16 |
[프로그래머스] 가장 큰 수 (Python) (0) | 2024.05.10 |
[프로그래머스] 더 맵게 (Python) (1) | 2024.05.09 |
[프로그래머스] 프로세스 (Python) (0) | 2024.05.08 |