paizaの森練習問題コンテスト過去問題15

paizaの森練習問題コンテスト(2024年5月開催)の過去問です。

【出力の練習】コード

console.log('marine');
hogeちゃんの画像

‘marine’ を出力。

【red があるか調べてみよう】コード

reader.on('close', () => {
   const S = lines[0].split(' ');
   console.log((S.includes('red')) ? 'Yes' : 'No');
});
hogeちゃんの画像
S に ‘red’ が含まれていれば ‘Yes’。

【階乗】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   let ans = 1;
   for (let i = 1; i <= N; i++) {
      ans *= i;
   }
   console.log(ans);
});
hogeちゃんの画像

1 ~ N まで ループして掛け算。

【単語のカウント】コード

reader.on('close', () => {
   const S = lines[0].split(' ');
   const W = new Map();
   for (const s of S) {
      if (W.has(s)) {
         W.set(s, W.get(s) + 1);
      } else {
         W.set(s, 1);
      }
   }
   W.forEach((value, key) => {
      console.log(key, value);
   });
});
hogeちゃんの画像
W の (key = 単語, value = 単語)が含まれている数。

【倍数の存在】コード

reader.on('close', () => {
   const [a, b, c] = lines[0].split(' ').map(Number);
   let ans = false;
   for (let i = b; i <= c; i++) {
      if (i % a === 0) {
         ans = true;
         break;
      }
   }
   console.log(ans ? 'Yes' : 'No');
});
hogeちゃんの画像

b から c までループして a で割り切れれば true。

【全員が不正答】コード

reader.on('close', () => {
   const [n, m] = lines[0].split(' ').map(Number);
   const test = [];
   for (let i = 1; i <= m; i++) {
      test.push(lines[i].split(' ').map(Number));
   }
   const test2 = new Array(n).fill().map(e => []);
   for (let i = 0; i < n; i++) {
      for (let j = 0; j < m; j++) {
        test2[i][j] = test[j][i];
      }
   }
   let point0 = false;
   for (const t of test2) {
      const point = t.reduce((a, c) => a + c);
      if (!point) {
         point0 = true;
         break;
      }
   }
   console.log(point0 ? 'Yes' : 'No');
});
hogeちゃんの画像

配列の行と列を入れ替えて 行の値を足し合わせた数が 0 なら true。

コメント