Programmers:Kビット数
に質問
配列のi番からj番までを切り取って並べ替えると、k番目の数字を求めようとします.
例えばarrayが[1,5,2,6,3,7,4],i=2,j=5,k=3の場合
arrayの2番目から5番目の場合は[5,2,6,3].
1の配列を並べ替えると[2,3,5,6].
2からの配列の3番目の数字は5です.
配列配列、[i、j、k]を要素とする2次元配列コマンドをパラメータとして与える場合は、commandsのすべての要素に前述の演算を適用した結果を配列に戻してsolution関数を作成します.
せいげんじょうけん
\ I/O
array commands return
[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]
I/O例説明
[1,5,2,6,3,7,4]を2番目から5番目に切り取り、並べ替えます.[2,3,5,6]の3番目の数字は5です.
[1,5,2,6,3,7,4]を4番目から4番目に切り取り、並べ替えます.[6]の最初の数字は6である.
[1,5,2,6,3,7,4]最初から7番目にカット[1.2.3.4.5.6.7]の3番目の数字は3です.
私が作った答え
function solution(array, [i,j,k]) {
const answer = array
.slice(i-1, j)
.sort((a, b) => a - b);
return answer[k-1];
}
他人の答え
function solution(array, commands) {
let newArr=[];
for(let i=0; i<commands.length; i++){
let arr =array.slice(commands[i][0]-1,commands[i][1]);
arr.sort(function(a,b){
return a-b;
});
newArr.push(arr[commands[i][2]-1]);
}
return newArr;
}
let array = [[2, 5, 3], [4, 4, 1], [1, 7, 3]];
console.log(array[0]); //[2, 5, 3]
console.log(array[1][2]); //1
やり直す答え
function solution(array, commands) {
let answer = [];
for (let i = 0; i < commands.length; i++) {
let a = array
.slice(commands[i][0] - 1, commands[i][1])
.sort((a, b) => a - b);
answer.push(a[commands[i][2] - 1]);
}
return answer;
}
Reference
この問題について(Programmers:Kビット数), 我々は、より多くの情報をここで見つけました https://velog.io/@jieunmin/Programmers-K번째수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol