- 논문 n편 중, h번 이상 인용된 논문이 h편 이상일때, h의 최댓값이 이 과학자의 H-Index
- 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return
- 논문의 수는 1편 이상 1,000편 이하
- 인용 횟수는 0회 이상 10,000회 이하
function solution(citations) {
var answer = 0;
for (let h = citations.length; h > 0; h--) {
let q = 0;
q = citations.filter(e => e >= h).length;
answer = q === h && answer < h ? h : answer;
}
return answer;
}
채점결과 11번만 오류
h번 이상 인용된 논문이 h편 이상
위의 조건을 만족하지 못해 생긴 오류로 만족할수 있도록 q === h 를 q >= h 로 수정
[최종코드]
function solution(citations) {
var answer = 0;
for (let h = citations.length; h > 0; h--) {
let q = 0;
q = citations.filter(e => e >= h).length;
answer = q >= h && answer < h ? h : answer;
}
return answer;
}

정렬했을때, 남은 갯수가 자신의 숫자보다 작은 경우는 어차피 조건에 해당되지 않는다
그렇기 때문에 검사하는 횟수를 줄여 시간을 단축시켰다.
function solution(citations) {
var answer = 0;
citations.sort((a, b) => a - b);
const max = citations.filter((e, i) => e >= citations.length - i).shift();
for (let i = max; i > 0; i--) {
let q = citations.filter(e => e >= i).length;
if (i <= q) {
return answer = i
}
}
return answer;
}

'프로그래머스 > JavaScript' 카테고리의 다른 글
[프로그래머스 JavaScript] Level1 K번째수 (0) | 2020.06.17 |
---|---|
[프로그래머스 JavaScript] Level2 가장 큰 수 (0) | 2020.06.16 |
[프로그래머스 JavaScript] Level2 탑 (0) | 2020.06.15 |
[프로그래머스 JavaScript] Level1 [1차] 비밀지도 (0) | 2020.06.11 |
[프로그래머스 JavaScript] Level1 실패율 (0) | 2020.06.09 |