https://www.acmicpc.net/problem/1316
그룹단어가 아닌 경우는 첫번째로 바로 전 문자와 현재 문자가 일치하지 않으며, 두번째로 현재까지 읽은 모든 문자중에 현재 문자가 있어야 한다.
문자열의 0번째인 경우 바로 전 문자가 없기 때문에 continue로 넘어간다.
path는 바로 전 문자를 저장해두는 변수이다. 첫번째 조건을 판단하기 위해 사용한다.
sub는 현재까지읽은 문자들을 잘라 저장한다. 두번째 조건을 판단하기 위해 사용한다.
const fs = require("fs");
let [n, ...arr] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
let path = "";
let str = "";
let sub = "";
let count = Number(n);
for (let i = 0; i < n; i++) {
str = arr[i];
for (let j = 0; j < str.length; j++) {
if (j === 0) continue;
else path = str[j - 1];
sub = str.slice(0, j + 1);
if (path !== str[j] && sub.split(str[j]).length - 1 >= 2) {
count--;
break;
}
}
}
console.log(count);
// 바로전문자랑 일치하지 않으면서 이전 문자들중에 현재 문자가 있으면 그룹단어 아님
설명에 오류가 있거나 이해가 어려운 부분이 있으면 댓글이나 이메일(pigkill40@naver.com)로 문의해 주시면 도움을 드리겠습니다.