[프로그래머스#JS] H_Index
문제
H_Index https://programmers.co.kr/learn/courses/30/lessons/42747
해결
-
완전탐색
- 인용된 횟수의 최댓값부터 0까지 탐색하면서 조건에 맞는 h_index를 찾아냈습니다.
- 이 경우 인용 횟수 최대 10000회, 배열의 길이 1000 으로 1초가 넘지 않습니다.
-
정렬, index 이용
- H_Index는 많이 인용된 순으로 정렬한 후, 피인용수가 논문수와 같아지거나 논문수보다 작아지는 숫자가 h입니다.
예외로 모두 탐색했는데도 없다면 논문 수의 개수가 답입니다. - 이 방법으로 풀면
O^N
으로 풀 수 있습니다.
참고근데 이걸 어떻게 알지.. 천재들이 많네..
- H_Index는 많이 인용된 순으로 정렬한 후, 피인용수가 논문수와 같아지거나 논문수보다 작아지는 숫자가 h입니다.
코드
1. 완전탐색
function solution(citations) {
let answer = 0;
const max_num = Math.max(...citations);
for (let h_index = max_num; h_index >= 0; h_index--) {
const moreCnt = citations.filter((v) => v >= h_index).length;
const lessCnt = citations.filter((v) => v <= h_index).length;
if (moreCnt >= h_index && lessCnt <= h_index) {
answer = h_index;
break;
}
}
return answer;
}
2. 정렬
function solution(citations) {
let answer = -1;
citations.sort((a, b) => b - a);
for (let i = 0; i < citations.length; i++) {
if (citations[i] <= i) {
answer = i;
break;
}
}
if (answer === -1) answer = citations.length;
return answer;
}
Author And Source
이 문제에 관하여([프로그래머스#JS] H_Index), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tunakim/프로그래머스JS-HIndex저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)