[アルゴリズム]等号を求める
6471 ワード
N(1<=N<=100)名の生徒の国語の点数を入力し、入力順に生徒ごとの点数を書き出します.
説明:
国語の点数を表すN個の整数を配列として入力する.同じ点数を入力すると、高い点数で同じ処理を行います.すなわち、最高点数は92点で、3位92点があれば1位は3位、次は4位となる.
問題を解く
ハードコーディングをできるだけ避けてみましたが、問題は解決しにくいので、答えとして返される配列の初期値を設定しました.この問題は完全なナビゲーションであるため,インデックス値を二重forゲートの周りで比較した.
function solution(arr, n) {
let answer = [1, 1, 1, 1, 1];
for(let i=0; i < n; i++) {
for(let j=0; j < n; j++) {
if (arr[i] < arr[j]) {
answer[i]++
}
}
}
return answer;
}
ハードコーディングの解題を避ける
Array.from
const answer = Array.from({length: len}, () => 1);
Array.fromメソッドを使用すると、入力配列の長さを数値1に浅くコピーし、初期値を生成できます.function solution(arr) {
let len = arr.length;
let result = Array.from({ length: len }, () => 1)
for (let i=0; i < len; i++) {
for (let j=0; j < len; j++) {
if (arr[i] > arr[j]) {
result[i]++;
}
}
return result;
}
Reference
この問題について([アルゴリズム]等号を求める), 我々は、より多くの情報をここで見つけました https://velog.io/@yunsungyang-omc/알고리즘-등수-구하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol