
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'input.txt';
const input = fs.readFileSync(path).toString().trim().split('\n');
let ans = 0;
const isGroupWord = (word) => {
const charSet = new Set();
let prevChar = '';
for (const w of word) {
if (charSet.has(w) && prevChar !== w) return false;
if (!charSet.has(w)) {
prevChar = w;
charSet.add(w);
}
}
return true;
};
for (let i = 1; i < input.length; i++) {
if (isGroupWord(input[i])) ans += 1;
}
console.log(ans);
⏰ 소요한 시간 : -
단어들이 그룹 단어인지 체크해주면 되는 단순한 구현 문제다.
각 문자가 그룹 단어인지 체크하는 함수를 하나 만들어줬다.
각 알파벳은 그룹화 되어 한번 나와야 한다.
이를 판별하기 위한 set을 하나 만들어 줬다.
알파벳을 순회했을 때, 올바른 그룹 단어라면 이전 단어와 현재 단어가 같거나 혹은 한번만 등장한 단어여야 한다. 이 조건에 부합하지 않는다면 false를 리턴한다.
false를 리턴하지 않았다면 이전알파벳을 업데이트 해주고 set에 알파벳을 추가해주면 된다.