풀이 1) 오름차순 정렬
def solution(citations):
citations.sort()
total = len(citations)
for i in range(total) :
if total-i <= citations[i] :
return total-i
return 0
1 2 3 7 8 9 10
1번 이상 -> 7개
2번 이상 -> 6개
3번 이상 -> 5개
(4번 이상 -> 4개)
(5번 이상 -> 4개)
7번 이상 -> 4개
이때 h index 는 볼드친 4개가 된다.
if 문에 안들어가는 경우는 citations 배열이 0 으로만 구성되는 경우다. -> return 0
풀이 2) 내림차순 정렬
def solution(citations):
citations.sort(reverse = True)
for i in range(len(citations)) :
if citations[i] < (i+1) : return i
return len(citations)
10 9 8 7 3 2 1
10번 이상 -> 1개
9번 이상 -> 2개
8번 이상 -> 3개
7번 이상 -> 4개
3번 이상 -> 5개
if 문에 들어가지 않는 경우는 모든 인용 횟수가 논문 총개수보다 크거나 같은 경우다. -> return 총개수
풀이 3) 내림차순
모든 h 가능 값을 구한 후 최대값을 뽑는 코드
def solution(citations):
citations.sort(reverse=True)
answer = max(map(min, enumerate(citations, start=1)))
return answer
'Algorithem > 프로그래머스 PS with code' 카테고리의 다른 글
[python] [3차] 파일명 정렬 lv.2 (0) | 2023.06.24 |
---|---|
[python3] 퍼즐 조각 채우기 lv.3 : 구현 (0) | 2023.06.24 |
[python3] 괄호 회전하기 lv.2 (0) | 2023.01.26 |
[python3] 멀리 뛰기 lv.2 (0) | 2023.01.26 |
[python3] 점프와 순간이동 lv.2 (0) | 2023.01.26 |