const { KeyObject } = require("crypto");
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const arr = fs
.readFileSync(filePath)
.toString()
.trim()
.split("\n")
.map((line) => line.replace("\r", ""));
const [n, m] = arr[0].split(" ").map(Number);
let keyword = new Map();
for (let i = 1; i <= n; i++) {
keyword.set(arr[i], 1);
}
let answer = [];
for (let i = n + 1; i <= n + m; i++) {
const letter = arr[i].split(",");
for (const l of letter) {
if (keyword.get(l)) {
keyword.delete(l);
}
}
answer.push(keyword.size);
}
console.log(answer.join("\n"));
Map을 사용해 시간복잡도를 줄이고 삭제로직도 편하게 구현했다.
문제풀이 잘 보았습니다! 혹시 백준에서 푼 문제를 아카이빙하고 복습을 편하게 하고싶으시면 https://mycodingtest.com/ 서비스 한번 이용해보시길 추천드립니다. ㅎㅎ