처음 이 문제를 접했을떄 상당히 난감했다.
왜냐하면 조건을 어떻게 잡아야 할지 생각이 나지 않았기 떄문이다.
function solution(citations) {
let MaxNum = -1;
for (let i = 0; i < citations.length; i++) {
let x = citations[i];
if (x === 0) {
continue;
}
let point = 0;
for (let j = 0; j < citations.length; j++) {
if (citations[j] / x >= 1) {
point++;
}
}
console.log(point);
MaxNum = Math.max(MaxNum, point);
}
}
처음에 일단 무작정 짜본 코드이다.
이떄 if문을 통해서 검증을 하고 답을 도출해 내려고 했지만
이러한 방법으로는 해결 할 수가 없는 문제였다.
function solution(citations) {
citations.sort((a, b) => b - a);
let ans = 0;
for (let i = 0; i < citations.length; i++) {
if (i < citations[i]) {
ans++;
}
}
return ans;
}
다른 방식으로 문제를 풀어본 결과이다.
이 방식을 생각하려면 일단 h-index가 무엇인지에 대한 정보가 필요했고 그에따른 정보를 취하면서 알아낸 방식이다.
코드가 많이 어렵지는 않으니 코드에 대한 내용을 넘어가도록 하겠다.