import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Group_Word_Checker {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] str = new String[N];
boolean flag = false;
int count = 0;
for (int i = 0; i < N; i++) {
str[i] = br.readLine();
flag = false;
for (int j = 0; j < str[i].length(); j++) {
if(j>0 && str[i].charAt(j) != str[i].charAt(j-1)) {
for (int k = 0; k < j; k++) {
if(str[i].charAt(k)==str[i].charAt(j)) {
flag = true;
break;
}
}
}
if(!flag && j==str[i].length()-1)
count++;
}
}
System.out.println(count);
}
}
핵심은 단어를 돌면서 이전문자와 달라지는 순간에 그룹단어인지를 체크 하도록 설계하는 것이다.
1. 각 단어를 한 문자씩 돌며 이전문자와 달라지는 순간을 찾는다.
2. 이전문자와 달라졌을때, 전에 나왔던 문자라면 flag = true를 체크하고 반복을 빠져나온다. 그 단어는 그룹단어가 아니다.
3. 마지막문자까지 체크했는데 flag가 false라면 그룹단어 개수를 증가시킨다.
결과적으로 삼중 포문을 사용하긴 했는데 포문이 여러개 나올때 그냥 따로 함수로 빼는게 직관적일것 같다. 다 포문안에서 처리할려니까 살짝 헷갈린다.