https://www.acmicpc.net/problem/14425
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt";
const input = fs.readFileSync(filePath).toString().trim().split("\n");
const [n] = input.shift().split(" ").map(Number);
const strInput = input.map((i) => i.trim());
const list = strInput.slice(0, n);
const candidate = strInput.slice(n);
const set = new Set(list);
let ans = 0;
candidate.forEach((str) => {
if (set.has(str)) ++ans;
});
console.log(ans);
✔️ 알고리즘 : 문자열
✔️ set 자료구조에 저장하고 has 메서드로 있는지 체크하여 값을 증가시켜주었다.
❗탐색하는 과정에서
candidate.forEach((str) => {
for (let i = 0; i < n; i++) {
if (list.includes(str)) {
ans++;
break;
}
}
});
식으로 includes 메서드를 사용해서 제출하면 시간초과가 발생한다. map, set자료구조를 항상 생각하자!
✔️ 난이도 : 백준 기준 실버 3