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]); // color の n + 1 番目を出力
});
各色 を 配列 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"
});
入力を 空文字 で区切っているので F の要素数は 5 になります。
【長方形の面積】コード
reader.on('close', () => {
const [e1, e2] = lines[0].split(' ');
console.log(e1 * e2 ? e1 * e2 : 'invalid');
});
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
});
真偽値(初期値=false)を pants に保存。ループしながら Number(p)
を pay に加算。c が ″pants″ なら pants を true で上書き。pants が true で pay が2000 以上なら pay – 500 を出力。そうでなければ pay を出力。
コメント