본문 바로가기

개발/알고리즘

[프로그래머스] 정렬 - H-Index

반응형
 

코딩테스트 연습 - H-Index

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표

programmers.co.kr

입력 & 출력

어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때,
이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.

 

풀이

값을 정렬한 후, 차례로 수를 더하며 h 값을 구하는 방법을 생각했다
[3, 0, 6 , 1, 5] 를 정렬하면 [6, 5 ,3 ,1 ,0] 이 된다
이들을 순서대로 찾아가며 h 값을 더해주고 h값이 배열의 h번보다 크다면, 그 수를 출력해준다

 

Swift  전체 코드

var i = 0
citations.sorted(by: >).forEach { i += i >= $0 ? 0 : 1 }
return i

 

반응형