[백준3986_자바스크립트(javascript)] - 좋은 단어

경이·2024년 6월 13일

𝑩𝑶𝑱 (𝒋𝒔)

목록 보기
67/325

🔴 문제

좋은 단어


🟡 Sol

const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
const [n, ...words] = fs.readFileSync(path).toString().trim().split('\n');

let count = 0;

function isGoodWord(word) {
  const stack = [];

  for (const w of word) {
    if (stack[stack.length - 1] === w) stack.pop();
    else stack.push(w);
  }

  return stack.length === 0 ? 1 : 0;
}

for (const word of words) {
  count += isGoodWord(word);
}

console.log(count);

🟢 풀이

스택의 냄새가 나는 문제ㅋㅋ
좋은 단어인지 확인해야 하는 단어가 여러개 이므로 좋은단어인지 체크하는 함수를 만들어줬다.
좋은 단어이려면 스택구조로 단어가 들어가거나 나와야 한다. 따라서 단어를 순휘하면서 마지막 단어가 현재 타겟이랑 같으면 교차할 일이 없을테니 스택에서 pop 해주면 되고 그게 아니라면 스택에 집어 넣어주면 된다. 좋은 단어일 경우 이 과정을 모두 수행하고 나면 스택의 길이가 0이 되기 때문


🔵 Ref

profile
록타르오가르

0개의 댓글