[プログラマー]K番目の数字
7459 ワード
K番目の数
配列のi番からj番までを切り取って並べ替えると、k番目の数字を求めようとします.
例えばarrayが[1,5,2,6,3,7,4],i=2,j=5,k=3の場合配列の2番目から5番目の場合は[5,2,6,3]である. 1の配列を並べ替えると[2,3,5,6]. 2の配列の3番目の数字は5です. 配列配列、[i、j、k]を要素とする2次元配列コマンドをパラメータとして与える場合は、commandsのすべての要素に前述の演算を適用した結果を配列に戻してsolution関数を作成します.
arrayの長さは100を超えない. arrayの各要素は1または100未満です. コマンドの長さは50を超えません. コマンドの各要素の長さは3です.
他の人の解答から見ると、総じて言えば、私が書いたコードと似ていますが、変数は少ないです.ドアはpush法で配列の中に置かれているので、ドアは回転しているからです.特に,変数宣言の概念が不完全であるためvarは氾濫している.😂 この機会に、変数タイプについて勉強し、整理します.
sortメソッドを使用する場合、sort()のみを使用して作成した結果、テスト・ケースが失敗し、sort((a,b)=>a-b)の形式でsortメソッドにcompareFunctionを提供する必要があります.
この問題を解決する過程で,よくうろうろする部分はfor文がループするたびに生成される値を配列とする.値を保存する配列をfor文に置くのは恥ずかしいけど😳 最終的に自分で見つけて悟ったので、これで十分です.
問題の説明
配列のi番からj番までを切り取って並べ替えると、k番目の数字を求めようとします.
例えばarrayが[1,5,2,6,3,7,4],i=2,j=5,k=3の場合
せいげんじょうけん
私の答え
function solution(array, commands) {
var result = new Array(commands.length);
for(var x = 0; x < commands.length; x++){
var command = commands[x];
var i = command[0];
var j = command[1];
var k = command[2];
var slice_f = array.slice(i-1,j);
var sort_f = slice_f.sort();
result[x] = sort_f[k-1];
}
var answer = result;
return answer;
}
}
他人の解答
function solution(array, commands) {
let answer = [];
for(let i = 0; i < commands.length; i++){
let eachCommand = commands[i]
let slice = array.slice(eachCommand[0] - 1, eachCommand[1])
answer.push(slice.sort((a, b) => a - b)[eachCommand[2] - 1])
}
return answer;
}
}
P.S.
他の人の解答から見ると、総じて言えば、私が書いたコードと似ていますが、変数は少ないです.ドアはpush法で配列の中に置かれているので、ドアは回転しているからです.特に,変数宣言の概念が不完全であるためvarは氾濫している.😂 この機会に、変数タイプについて勉強し、整理します.
sortメソッドを使用する場合、sort()のみを使用して作成した結果、テスト・ケースが失敗し、sort((a,b)=>a-b)の形式でsortメソッドにcompareFunctionを提供する必要があります.
この問題を解決する過程で,よくうろうろする部分はfor文がループするたびに生成される値を配列とする.値を保存する配列をfor文に置くのは恥ずかしいけど😳 最終的に自分で見つけて悟ったので、これで十分です.
Reference
この問題について([プログラマー]K番目の数字), 我々は、より多くの情報をここで見つけました https://velog.io/@nulbo/프로그래머스-K번째수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol