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

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

【お菓子の合計金額】コード

 reader.on('close', () => {
    const [a, b] = lines[0].split(' ').map(Number);
    console.log(a + b);
 });
hogeちゃんの画像

a 円 + b 円 = 合計金額 。

【フィボナッチ数列】コード

 const f = [1, 1];
 for (let i = 1; i < 9; i++) {
    f.push(f[i] + f[i - 1]);
 }
 for (const value of f) {
    console.log(value);
 }

【素数判定】コード

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

素数…2以上の自然数のうち 自身と1だけでしか割り切れない数。

【残業時間】コード

reader.on('close', () => {
   let sum = 0;
   for (let i = 0; i < 30; i++) {
      sum += lines[i] - 8;
   }
   console.log(sum);
});
hogeちゃんの画像
1日8時間以上働いたら 残業。

【ロボットの移動 – その 2】コード

reader.on('close', () => {
   let [x, y] = lines[0].split(' ').map(Number);
   [x, y] = [Math.abs(x), Math.abs(y)];
   if (x === y) {
      console.log(x + y);
   } else {
      console.log((x + y) + Math.abs(x - y) - 1);
   }
});
hogeちゃんの画像

同じ方向に連続して移動できないので難しかった。

【辞書順で最も小さい文字列】コード

reader.on('close', () => {
  const s = lines[1].split('');
  console.log(s.sort().join(''));
});
hogeちゃんの画像

sort() で辞書順に並べ替え。

【全員が正答】コード

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

配列の行と列を反転して 行の合計が m になれば全員正解 。

コメント