データセット選択メニュー【集合の探索・重複の削除・重複の判定 1 〜 2・集合の結合】
【STEP: 1】コード
reader.on('close', () => {
const [N, B] = lines[0].split(' ').map(Number);
const A = lines[1].split(' ').map(Number);
console.log(A.includes(B) ? 'Yes' : 'No'); // A に B が含まれる場合は ”Yes” 含まれなければ "No" });
A.includes(B)
で A に B が含まれているかどうか調べて 三項演算子 で 出力内容を振り分けました。
【STEP: 2】コード
reader.on('close', () => {
const N = Number(lines[0]);
const S = new Set(lines[1].split(' ').map(Number)); // 入力をSet()で受取
console.log(...S); // S の要素を展開して出力
});
セット は 重複する値の保存できないので 入力を セット で受け取って 出力しました。
【STEP: 3】コード
reader.on('close', () => {
const N = Number(lines[0]);
const A = lines[1].split(' ').map(Number);
for (let i = 1; i < N; i++) {
const a = A.slice(0, i); // a は A[0]〜A[i-1]までの要素の新配列を生成して に保存
console.log(a.includes(A[i]) ? 'Yes' : 'No');
}
});
A.slice(0, i)で A[0]〜A[i-1]までの要素の新配列を生成して a に保存。a に A[i] が含まれるかどうかは a.includes(A[i])
で調べました。
【STEP: 4】コード
reader.on('close', () => {
const N = Number(lines[0]);
const A = lines[1].split(' ').map(Number);
for (let i = 1; i < N; i++) {
const a = A.slice(0, i);
console.log(a.includes(A[i]) ? 'Yes' : 'No');
}
});
【STEP: 3】と同じ コード で 問題なくクリアできました。
(・ω・) ?
【FINAL】コード
reader.on('close', () => {
const N = Number(lines[0]);
const A = lines[1].split(' ').map(Number);
const B = lines[2].split(' ').map(Number);
const S = new Set([...A, ...B]); // 重複を削除するために 配列 A・B を セット S の要素として展開
const C = [...S]; // S の要素を 配列 C の要素として展開
C.sort((s, b) => s - b); // C を昇順に並替え
console.log(C.join(' '));
});
重複を削除するため 配列 A, B の値をセット S の値として 展開。更に S の値を配列 C の要素として展開して 小さい順に並べ替えました。
コメント