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

paizaの森練習問題コンテスト(2022/3/24開催)の過去問

【競輪のユニフォーム】コード

reader.on('close', () => {
   const color = ['white', 'black', 'red', 'blue', 'yellow', 'green', 'orange', 'pink', 'purple'];
   const n = lines[0] - 1;
   console.log(color[n]);  // colorn + 1 番目を出力
});
hogeちゃんの画像

各色 を 配列 color に保存し 添字 n の値を出力しました。

【エレベーターの行き先】コード

reader.on('close', () => {
   const F = lines[0].split('');  // 入力を 1 文字毎の配列に変換
   console.log(F[0] < F[3] ? 'up' : 'down');  // F[0] < F[3] なら "up" さもなくば "down"
});
hogeちゃんの画像

入力を 空文字 で区切っているので F の要素数は 5 になります。

【長方形の面積】コード

reader.on('close', () => {
   const [e1, e2] = lines[0].split(' ');
   console.log(e1 * e2 ? e1 * e2 : 'invalid');
});
hogeちゃんの画像

e1 * e2 が true なら 乗算の答えを出力。false なら ″invalid″ を出力。

【セール販売】コード

reader.on('close', () => {
   const N = Number(lines[0]);
   let pay = 0;  // 割引前の額
   let pants = false;  // ズボンを購入すれば true
   for (let i = 1; i <= N; i++) {
      const [c, p] = lines[i].split(' ');
      pay += Number(p);  // 割引前の額 + p
      if (c === 'pants') {  // ズボンを購入すれば
         pants = true;  // pants を true にする
      }
   }
   console.log(pants && pay >= 2000 ? pay - 500 : pay);
  // pants が true 且つ pay が 2000 以上なら -500
});
hogeちゃんの画像

真偽値(初期値=false)を pants に保存。ループしながら Number(p)pay に加算。c が ″pants″ なら pants を true で上書き。pants が true で pay が2000 以上なら pay – 500 を出力。そうでなければ pay を出力。

コメント