[백준] 14425 문자열 집합 - javascript

Yongwoo Cho·2022년 6월 3일
0

알고리즘

목록 보기
101/104
post-thumbnail

📌 문제

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

profile
Frontend 개발자입니다 😎

0개의 댓글