눈송이의 개발생활
[Programmers Lv.2]H-Index (Python) 본문
문제
https://programmers.co.kr/learn/courses/30/lessons/42747
내 코드
def solution(citations):
count = 0
citations.sort()
for i in range(citations[-1] + 1):
new_c = [j for j in range(len(citations)) if citations[j] >= i]
if len(new_c) >= i:
count = i
else:
break
return count
다른 사람 풀이
def solution(citations):
citations = sorted(citations)
l = len(citations)
for i in range(l):
if citations[i] >= l-i:
return l-i
return 0
해결 방법
h번 이상 인용된 논문이 h편 이상이면 h가 H-Index가 된다.
h번 이상 인용된 논문을 찾기 위해 for문을 돌면서 h이상의 숫자로만 이루어진 새로운 배열을 만들었다.
h편 이상인 것을 알기 위해 새로 만든 배열의 길이를 구하고 그 길이가 h 이상인지 비교하였다.
다른 사람은 배열에 있는 원소만 고려하고 풀었는데, 나는 h가 배열 안에 있는 수가 아닐 경우도 생각해서 풀어서 다른 풀이가 나온 것 같다.
다른 사람 풀이에서 l-i은 논문의 개수를 뜻한다.
새로운 배열을 만드는 생각만 하면 금방 풀 수 있었는데, 그 생각을 못해서 결국 검색해서 힌트를 얻어 풀었다.
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers Lv.2]주식가격 (Python) (1) | 2022.08.24 |
---|---|
[Programmers Lv.1]완주하지 못한 선수 (Python) (0) | 2022.04.08 |
[Programmers Lv.1]모의고사 (Python) (0) | 2022.04.06 |
[Programmers Lv.1]K번째수 (Python) (0) | 2022.04.05 |
[Programmers Lv.1]체육복 (Python) (0) | 2022.04.04 |
Comments