티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/42747
1. 접근 방식
- 계수 정렬(Count Sort)를 이용하자
인용 횟수가 동일한 논문이 있을 것이다. 따라서 인용 횟수가 인덱스고, 그 수만큼 인용된 논문의 개수를 값으로 하는 리스트를 활용하도록 하자.
위 리스트를 뒤에서부터 접근함으로써 높은 논문 인용 횟수에서 그 횟수를 하나씩하나씩 줄여나가자. 만약 현재 인용 횟수보다 논문의 개수가 적다면 인용 횟수를 하나 더 줄이고, 논문 개수보다 많거나 같다면 그 횟수(index)가 바로 H-index이다
2. 정답 코드
def solution(citations):
size = max(citations)
count = [0] * (size + 1)
for c in citations:
count[c] += 1
times = 0
for i in range(size, -1, -1):
times += count[i]
if times >= i:
return i
728x90
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 타겟 넘버 파이썬 풀이 (0) | 2024.03.24 |
---|---|
[프로그래머스] 입국심사 파이썬 풀 (0) | 2024.02.05 |
[프로그래머스] [3차] 압축 파이썬 풀이 (0) | 2023.06.27 |
[프로그래머스] 베스트앨범 파이썬 풀이 (0) | 2023.06.25 |
[프로그래머스] [1차] 셔틀버스 파이썬 정답 코드 (0) | 2023.06.23 |