프로그래머스/Python
[프로그래머스] H-Index - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 7. 16. 14:17
728x90
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
2. 풀이과정
- 논문의 인용 횟수를 담은 리스트를 오름차순으로 정렬한다. citations.sort()
- 만족하는 Index를 저장할 리스트를 생성한다. li = list()
- 인덱스는 0부터 논문의 인용 횟수의 최댓값까지 가능하므로 반복한다. for h in range(max(citations) + 1)
- 인덱스보다 많이 인용된 논문의 수를 저장할 변수를 생성하고 초기화한다. count = 0
- 논문의 인용 횟수를 하나씩 추출하여 for i in citations
- 만약 인용 횟수가 인덱스보다 크거나 같다면 논문의 수를 1 증가시킨다. if (h <= i): count += 1
- 모든 인용 횟수에 대한 판별이 끝나고 만약 인덱스 이상 인용된 논문이 인덱스 이상이면 if (count >= h)
- 리스트에 인덱스를 추가한다. li.append(h)
- 반면에 인덱스 이상 인용된 논문이 인덱스보다 작다면 그다음 인덱스도 같은 결과가 도출되므로 이후 인덱스는 판별할 필요가 없다. 따라서 종료한다. else: break
- 만족하는 인덱스를 저장한 리스트에서 가장 큰 값을 정답에 저장한다. answer = max(li)
반응형
3. 소스코드
def solution(citations):
answer = 0
citations.sort()
li = list()
for h in range(max(citations) + 1):
count = 0
for i in citations:
if (h <= i):
count += 1
if (count >= h):
li.append(h)
else:
break
answer = max(li)
return answer
728x90
반응형