ソート>H Index(Java、JavaScript ES 5)
問題リンク
最初は問題を理解しなかった.
N編でH回以上引用した論文はH編以上で残りの論文はH回以下引用したので混同した.
簡単に考えて、昇順に並べて、1つのH番以上で引用されている数字が残りの大きな数字の個数K以上である(数字)を見つければよい.(K <= H)
example)
arr : [ 3, 0, 6, 1, 5 ] → [ 0, 1, 3, 5, 6 ]
index : 0 → H : 0 (arr[0]), K : 5
index : 1 → H : 1 (arr[0]), K : 4
index : 2 → H : 3 (arr[0]), K : 3
index : 3 → H : 5 (arr[0]), K : 2
index : 4 → H : 6 (arr[0]), K : 1
最初のHがK以上の数字:3
JavaScript
最初は問題を理解しなかった.
N編でH回以上引用した論文はH編以上で残りの論文はH回以下引用したので混同した.
簡単に考えて、昇順に並べて、1つのH番以上で引用されている数字が残りの大きな数字の個数K以上である(数字)を見つければよい.(K <= H)
example)
arr : [ 3, 0, 6, 1, 5 ] → [ 0, 1, 3, 5, 6 ]
index : 0 → H : 0 (arr[0]), K : 5
index : 1 → H : 1 (arr[0]), K : 4
index : 2 → H : 3 (arr[0]), K : 3
index : 3 → H : 5 (arr[0]), K : 2
index : 4 → H : 6 (arr[0]), K : 1
最初のHがK以上の数字:3
JavaScript
function solution(citations) {
var answer = 0;
Array.prototype.sort.call(citations, function(a, b){
return a - b;
});
var n = citations.length;
var h = 0;
var k = 0;
for(var index = 0; index < n; index = index + 1){
h = citations[index];
k = n - index;
if( k <= h ){
answer = k;
break;
}
}
return answer;
}
ジャワimport java.util.Arrays;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Arrays.sort(citations);
int n = citations.length;
int h = 0;
int k = 0;
for(int index = 0; index < n; index = index + 1){
h = citations[index];
k = n - index;
if( k <= h ){
answer = k;
break;
}
}
return answer;
}
}
Reference
この問題について(ソート>H Index(Java、JavaScript ES 5)), 我々は、より多くの情報をここで見つけました https://velog.io/@dev-wanted/프로그래머스-스택큐-H-Index-Java-JavaScript-ES5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol