paizaの森練習問題コンテスト(2023年6月開催)の過去問
です。
【座席】コード
reader.on('close', () => {
const guest = lines;
for (let i = 0; i < 3; i++) {
console.log(...guest.splice(0, 3));
}
});
入力値をguest にコピーして先頭から 3文字ずつ切り取って出力しました。
【平均と平均】コード
reader.on('close', () => {
const [a, b] = lines[0].split(' ').map(Number);
const A_Mean = (a + b) / 2;
const G_Mean = Math.sqrt(a * b);
if (A_Mean === G_Mean) {
console.log('equal');
} else if (A_Mean > G_Mean) {
console.log('arithmetic');
} else if (A_Mean < G_Mean) {
console.log('geometric');
}
});
相加平均と相乗平均を計算して if文で条件分岐しました。
【親と子】コード
reader.on('close', () => {
const [a, b] = lines[0].split(' ').map(Number);
console.log(b === a * 2 + 1 || b === a * 2 + 2 ? 'Yes' : 'No');
});
配列の二分木。左の子は 親 × 2 + 1・右の子は 親 × 2 + 2。
【卒論締め切り】コード
reader.on('close', () => {
const [n, a, b] = lines[0].split(' ').map(Number);
console.log(n <= a * b ? 'Yes' : 'No');
});
a * b が n 以上なら ‘Yes’。
【WBC】コード
reader.on('close', () => {
const w = lines[0];
console.log(w === 'WBC' ? 'Yes' : 'No');
});
‘WBC’ なら ’Yes’。
【paiza とタイピング】コード
reader.on('close', () => {
const s = lines[0];
const p = s.indexOf('p');
const a = s.indexOf('a', p);
const i = s.indexOf('i', a);
const z = s.indexOf('z', i);
const la = s.indexOf('a', z);
console.log(p < a && a < i && i < z && z < la ? 'Yes' : 'No');
});
s.indexOf(添字を取得したい文字, 検索開始位置) で検索開始位置から調べて添字を取得したい文字 の 添字 ( 見つからない場合は -1) を取得することができました。
コメント