https://www.acmicpc.net/problem/1316
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
final int N = Integer.parseInt(br.readLine());
int count = 0;
for (int i = 0; i < N; i++) {
boolean check = true;
Set<Character> set = new HashSet<>();
Character pre = null;
for (char spelling : br.readLine().toCharArray()) {
if (pre == null) {
set.add(spelling);
pre = spelling;
continue;
}
if (spelling != pre) {
if (set.contains(spelling)) {
check = false;
break;
} else {
pre = spelling;
set.add(spelling);
}
}
}
count = check ? count + 1 : count;
}
System.out.println(count);
}
}
생각나는데로 구현한 코드지만 제한 시간이 넉넉해서 통과 한 것 같다.
시간 제한이 빡빡하거나 테스트 케이스들의 단어가 엄청 길다면 Set말고 boolean배열을 사용하면 좋을 것 같고
철자확인 반복문이 시작 되기전에 단어를 미리 쪼개 char 배열로 생성해놓고 첫 철자에 대한 처리를 해서 if문을 하나 없애면 어떨까 싶다.