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 の値を取出し
});
キー と 値 のペアを マップ 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;
}
});
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"(冬)
}
});
if文 で 条件分岐。
【オルタネーティングキャップス】コード
reader.on('close', () => {
const S = lines[0];
console.log(S.toLowerCase()); // S を小文字に変換
});
toLowerCase()
で小文字に変換しました。【パワー 100 倍】コード
reader.on('close', () => {
const p = lines[0];
console.log(p + '00'); // p に ″00″ を連結して出力
});
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);
});
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);
});
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);
});
グラムあたりの値段 を配列 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));
});
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');
});
Math.abs()
で 絶対値を取得。
コメント