ループメニュー【数列の最大値・数列の最小値・数列の何番目にある?・数列の中に何個ある?】
【STEP: 1】コード
reader.on('close', () => {
const N = Number(lines[0]);
const a = lines[1].split(' ').map(Number);
let ans = 0; // 出力値(答え)を 0 で初期化
for (let i = 0; i < N; i++) {
if(ans < a[i]){ // ans より a[i] が大きければ
ans = a[i]; // ans の値を a[i] で上書き
}
}
console.log(ans);
// console.log(Math.max(...a)); // Math.max(...a)で a の最大値を抽出
});
a の個々の要素にアクセスし ans より大きければ ans の値を a[i]に更新しています。
【STEP: 2】コード
reader.on('close', () => {
const N = Number(lines[0]);
const a = lines[1].split(' ').map(Number);
let ans = a[0]; // 出力値(答え)を a[0] で初期化
for (let i = 1; i < N; i++) {
if (ans > a[i]) { // ans が a[i] より大きければ
ans = a[i]; // ans の値を a[i] で上書き
}
}
console.log(ans);
// console.log(Math.min(...a));
});
【STEP: 1】と同様に ans より小さければ ans の値を a[i]に更新。
【STEP: 3】コード
reader.on('close', () => {
const N = Number(lines[0]);
const a = lines[1].split(' ').map(Number);
for (let i = 0; i < N; i++) {
if (a[i] === 1) { // a[i] が 1 なら…
console.log(i + 1); // i + 1を出力して…
break; // ループをを止める
}
}
// console.log(a.indexOf(1)+1);
});
a[i] === 1
なら i + 1を表示して ループを止めればOK。
【FINAL】コード
reader.on('close', () => {
const N = Number(lines[0]);
const a = lines[1].split(' ').map(Number);
let ans = 0; // 出力値(答え)を 0 で初期化
for (let i = 0; i < N; i++) {
if (a[i] === 1) { // a[i] が 1 なら…
ans++; // ans を加算
}
}
console.log(ans);
// console.log(lines[1].match(/\s1(?!\d)|^1(?!\d)/g).length);//これでもok
});
a の全要素にアクセスして a[i] === 1 であれば ans の値を加算。
コメント