数列の中に何個ある?

ループメニュー【数列の最大値・数列の最小値・数列の何番目にある?・数列の中に何個ある?】

【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 の最大値を抽出
});
hogeちゃんの画像

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]) {  // ansa[i] より大きければ
         ans = a[i];  // ans の値を a[i] で上書き
      }
   }
   console.log(ans);
 // console.log(Math.min(...a));
});
hogeちゃんの画像

【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);
});
hogeちゃんの画像

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

});
hogeちゃんの画像

a の全要素にアクセスして a[i] === 1 であれば ans の値を加算。

コメント