paizaの森練習問題コンテスト(2024年3月開催)の過去問
です。
【回文】コード
reader.on('close', () => {
const s = lines[0].split('');
let palindrome = true;
const l = s.length;
for (let i = 0; i < l; i++) {
if (s[i] !== s[l - 1 - i]) {
palindrome = false;
break;
}
}
console.log(palindrome ? 'Yes' : 'No');
});
右から読んでも左から読んでも同じなら ‘Yes’。
【区間の三分割】コード
reader.on('close', () => {
const [l, r] = lines[0].split(' ').map(Number);
const n = (r - l) / 3;
console.log(l + n, r - n);
});
(右端 – 左端) ÷ 3 で全体の長さの 1/3 を計算。
【割り切れる数の個数】コード
reader.on('close', () => {
const [a, b] = lines[0].split(' ').map(Number);
let ans = 0;
for (let i = a; i <= b; i++) {
if (i % 2 === 0 || i % 3 === 0) {
ans++;
}
}
console.log(ans);
});
2で割った余りが 0 または 3で割った余りが 0 なら ans を加算。
【パイプを切る】コード
reader.on('close', () => {
const [n, k] = lines[0].split(' ').map(Number);
const A = lines[1].split(' ').map(Number);
let num = 0;
for (let i = 0; i < n; i++) {
num += Math.floor(A[i] / k);
}
console.log(num);
});
各パイプを k で割って 端数を切り捨て。
【好みのピザ】コード
reader.on('close', () => {
const [n, m] = lines[0].split(' ').map(Number);
const M = new Array(n).fill(0);
const A = lines[1].split(' ').map(Number);
for (let i = 0; i < m; i++) {
M[A[i] - 1] = 1;
}
ans = M.reduce((a, c) => a + c);
console.log(ans);
});
注文したピザの種類数。
【家計の収支】コード
reader.on('close', () => {
const [n, k] = lines.shift().split(' ').map(Number); //n ヶ月前は k 円
const A = lines.shift().split(' ').map(Number); //収入
const B = lines.shift().split(' ').map(Number); //支出
const sum_A = A.reduce((a, c) => a + c);
const sum_B = B.reduce((a, c) => a + c);
console.log(k + sum_A - sum_B);
});
sum_A は収入の合計・ sum_B は支出の合計。
【野球世界大会 1 次ラウンドの順位】コード
reader.on('close', () => {
const M = new Map();
for (let i = 0; i < 5; i++) {
M.set(lines.shift(), 0);
}
for (let i = 0; i < 10; i++) {
const [s1, win] = lines.shift().split(' ');
const [a, b] = s1.split('-');
switch (win) {
case '1':
M.set(a, M.get(a) + 1);
break;
case '0':
M.set(b, M.get(b) + 1);
break;
}
}
const A = [];
M.forEach((value, key) => {
A.push([key, value]);
});
A.sort();
A.sort((s, b) => b[1] - s[1]);
console.log(A[0][0]);
console.log(A[1][0]);
});
連想配列は Map() を使いました。
コメント