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

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

【花言葉】コード

reader.on('close', () => {
   const S = lines[0];
 // LOF は {花の名前(キー), 花言葉(値)}がセットになった要素を持つマップ
   const LOF = new  Map(
      [
         ['rose', 'I love you'],
         ['cosmos', 'harmony'],
         ['tulip', 'perfect lover'],
         ['hydrangea', 'heartlessness'],
         ['jasmine', 'amiability']
      ]);
   console.log(LOF.get(S));  // LOF.S の値を取出し
});
hogeちゃんの画像

キー と 値 のペアを マップ LOF に保存し LOF.get(S)S の値を取り出して表示しています。

【じゃんけん】コード

reader.on('close', () => {
   const S = lines[0];
   switch (S) {  // S が…
   case 'R':  // "R"(グー) なら…
      console.log('P');  // "P"(パー)
      break;
   case 'P':  // "P"(パー) なら…
      console.log('S');  // "S"(チョキ)
      break;
   case 'S':  // "S"(チョキ) なら…
      console.log('R');  // "R"(グー)
   break;
   }
});
hogeちゃんの画像

switch文 で 条件分岐しました。

【四季】コード

reader.on('close', () => {
   const S = Number(lines[0]);
   if (S >= 3 && S <= 5) {  // 3 〜 5 なら…
      console.log('spring');  // "spring"(春)
   } else if (S >= 6 && S <= 8) {  // 6 〜 8 なら…
      console.log('summer');  // "summer"(秋)
   } else if (S >= 9 && S <= 11) {  // 9 〜 11 なら…
      console.log('autumn');  // "autumn"(夏)
   } else {  // その他 (12, 1 〜 2) なら…
      console.log('winter');  // "winter"(冬)
   }
});
hogeちゃんの画像

if で 条件分岐。

【オルタネーティングキャップス】コード

reader.on('close', () => {
   const S = lines[0];
   console.log(S.toLowerCase());  // S を小文字に変換
});
hogeちゃんの画像
toLowerCase()で小文字に変換しました。

【パワー 100 倍】コード

reader.on('close', () => {
   const p = lines[0];
   console.log(p + '00');  // p に ″00″ を連結して出力
});
hogeちゃんの画像

p で 文字列のまま 入力を受け取り 出力時に ″00″ を連結。

【おつり】コード

reader.on('close', () => {
   let p = Number(lines[0]);
   let ans = 0;

   function change(coin, c) {
      c -= coin;
      return c;
   }
   while (p > 0) {
      if (p >= 500) {
         p = change(500, p);
      } else if (p >= 100) {
         p = change(100, p);
      } else if (p >= 50) {
         p = change(50, p);
      } else if (p >= 10) {
         p = change(10, p);
      } else if (p >= 5) {
         p = change(5, p);
      } else {
         p = change(1, p);
      }
      ans++;
   }
   console.log(ans);
});
hogeちゃんの画像

while文 の中で if文 で条件分岐して change(coin, c)を呼び出しています。

【ゾロ目】コード

reader.on('close', () => {
   const x = Number(lines[0]);
   const y = parseInt(x / 10);
   const z = x % 10;
   console.log(z >= y ? y * 10 + y : (y - 1) * 10 + y - 1);
});
hogeちゃんの画像

10の位 と 1の位 を比較して 条件分岐して出力しました。

【いちばんお得】コード

reader.on('close', () => {
   const c = new Array(2);
   for (let i = 0; i < 2; i++) {
      const [g, p] = lines[i].split(' ');
      c[i] = p / g;
   }
   console.log(c[0] < c[1] ? 1 : 2);
});
hogeちゃんの画像

グラムあたりの値段 を配列 c に保存して c[0] < c[1] が true なら 1 ・false なら 2を表示。

【重さの計算】コード

reader.on('close', () => {
   const [n, k, x] = lines[0].split(' ').map(Number);
   console.log(parseInt(x / k * n));
});
hogeちゃんの画像

parseInt() で小数点以下を切り捨て。

【寒暖差】コード

reader.on('close', () => {
   let d3 = false;
   for (let i = 0; i < 9; i++) {
      const d = Math.abs(lines[i] - lines[i + 1]);
      if (d >= 3) {
         d3 = true;
      }
   }
   console.log(d3 ? 'Yes' : 'No');
});
hogeちゃんの画像

Math.abs() で 絶対値を取得。

コメント