프로그래머스 Lv.2 H-Index
1 2 3 4 5 6 7 8 9 10 11 | function solution(citations) { let arr = citations.sort((a, b) => b-a); for(let i = 0; i < arr.length; i++) { if(i >= arr[i]) { return i; } } return arr.length; } | cs |
citiations
를 내림차순으로sort
해서arr
에 할당한다.반복문을
i
가 0부터arr
의 길이까지 반복한다.만약에
i
가arr[i]
보다 크거나 같으면 인덱스 값인i
를 return 한다.조건에 맞는 인덱스가 없다면
arr.length
를 return 한다.
+추가설명
위키피디아 설명
h-index를 구하기 위해서는 배열을 내림차순으로 바꿔야합니다.
그리고 각각의 인덱스와 인덱스에 해당하는 값을 비교해 인덱스가 인덱스에 해당하는 값보다 크거나 같으면 그 값이 h-index입니다.배열을 내림차순으로 정렬해주고, index >= arr[index] 일때 인덱스를 return 해준다.
조건에 부합하는 인덱스가 없다면 가장 큰 인덱스를 return 해준다.