
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
const [nm, ...inputs] = fs.readFileSync(path).toString().trim().split('\n');
const [n, m] = nm.split(' ').map(Number);
const knownPerson = [];
const unknownPerson = new Set();
for (let i = 0; i < n; i++) {
knownPerson.push(inputs[i]);
}
for (let i = n; i < inputs.length; i++) {
unknownPerson.add(inputs[i]);
}
const person = knownPerson.filter((it) => unknownPerson.has(it));
person.sort();
console.log(person.length);
console.log(person.join('\n'));
⏰ 소요한 시간 : -
파이썬으로 풀이하면 intersection 연산해주면 되는데... JS는 그런걸 지원하지 않으므로 듣도 못한 사람은 배열, 보도 못한 사람은 set으로 파싱해준다.
그 후 듣도 못한 사람을 filter 연산 하면서 보도못한사람의 has 메서드를 사용해 교집합을 찾아준다.
그렇게 구해진 듣도 보도 못한 사람을 sort로 정렬해준 뒤 출력해준다.