반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 데이터베이스복사
- ORACLE문법
- 프로그래머스
- 데이터 수집
- 카프카
- 지연연산
- Spark
- Databricks
- 런타임데이터영역
- kafka 설치
- 하둡2.0
- AWS Crawler
- 빌드도구
- EMR 구조
- 데이터파이프라인
- 프로그래머스 큰 수 만들기
- ORACLE MSSQL차이
- 데이터엔지니어링
- 서버간 복사
- 하둡
- 문맥교환
- Catalyst Optimizer
- 실행엔진
- freenom
- 스파크
- lazy evaluation
- 하둡에코시스템
- 하둡1.0
- 프로그래머스힙
- Spark 최적화
Archives
- Today
- Total
띵유로그
[프로그래머스][정렬]H-Index 본문
반응형
문제요약 : n 편의 논문중 h 번 이상 인용된 논문의 개수가 h개이상일때, h의 최댓값이 H-Index가 됨
내 풀이
def count(c_list, num):
cnt=0
for i in c_list:
if i>=num:
cnt+=1
return cnt
def solution(citations):
answer = 0
citations=sorted(citations, reverse=True)
for i in range(max(citations)):
if max(citations)-i<=count(citations,max(citations)-i):
answer=max(citations)-i
break
return answer
- count 함수는 논문중 num개 이상 인용된 논문의 개수를 count
- citation 의 최댓값부터 H-Index인지 검사한다.
- max(citations) - i : h 값
h개 이상 인용되었으면 해당 값이 answer이 됨
h-Index는 무조건 논문 인용된 수 중 하나여야하는줄 알고 헷갈렸다. (citations 원소중 하나가 답이여야하는줄 암)
그렇게 푸니 11번 16번 case만 정답이고 나머진 틀림ㅋㅋ
다른사람 풀이1
def solution(citations):
citations = sorted(citations)
l = len(citations)
for i in range(l):
if citations[i] >= l-i:
return l-i
return 0
- 정렬을 한 뒤에 citations[i] >= l -i를 통해 조건을 걸면 count함수를 굳이 만들 필요가 없다.
정렬을 했으면 당연히 i 보다 뒤에 있는 원소들은 i번째보다 더 인용횟수가 많음.
즉, citations[i]= i번째 인용횟수,
l-i = citations[i] 이상의 인용 횟수를 가지는 논문 수
다른사람 풀이2
def solution(citations):
citations.sort(reverse=True)
answer = max(map(min, enumerate(citations, start=1)))
return answer
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스][힙]이중우선순위큐 (0) | 2020.09.06 |
---|---|
[프로그래머스][완전탐색]모의고사 (0) | 2020.09.06 |
[프로그래머스][정렬]가장 큰 수 (0) | 2020.08.28 |
[프로그래머스][정렬]K번째 수 (0) | 2020.08.24 |
[프로그래머스][힙]더맵게 (0) | 2020.08.23 |
Comments