Bランクレベルアップメニュー【インクリメント・数字のみの出力・昇順ソート出力・文字と整数の組のソート】
Task
【インクリメント】コード
reader.on('close', () => {
let n = Number(lines[0]);
n++; // n = n + 1
console.log(n);
});
n の値を n + 1で上書きして出力しました。
【数字のみの出力】コード
reader.on('close', () => {
const N = Number(lines[0]);
for (let i = 1; i <= N; i++) {
const [S, D] = lines[i].split(' '); // 入力を(' ')区切りで分割して [S, D] で受取って…
console.log(D); // D を出力
}
});
N 行の入力を 半角スペース区切りで分割。アルファベットの部分をS・数字の部分を D で受取り D のみ出力しました。
Task
【昇順ソート出力】コード
reader.on('close', () => {
const N = Number(lines[0]);
const A = lines[1].split(' ').map(Number);
A.sort((s, b) => s - b); // 昇順に並替え
for (let i = 0; i < N; i++) {
console.log(A[i]);
}
});
A.sort((s, b) => s - b)
で A の要素を 昇順に並べ替えることができました。
【文字と整数の組のソート】コード
reader.on('close', () => {
const N = Number(lines[0]);
const A = []; // 二次元配列
for (let i = 1; i <= N; i++) {
const [S, D] = lines[i].split(' '); // S は文字, D は整数
A.push([S, D]); // [S, D] を A に保存
}
A.sort((s, b) => s[1] - b[1]); // A[i][1] を基準に昇順に並替え
for (let i = 0; i < N; i++) {
console.log(A[i][0]); // A[i][0] を出力
}
});
A は 二次元配列 なので A[i][0]を基準に昇順に並べ替えてから A[i][0]を出力しました。
コメント