이번에 풀어본 문제는
백준 1316번 그룹 단어 체커 입니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int cnt = 0;
loop : for(int i = 0; i < N; i++)
{
char[] input = br.readLine().toCharArray();
boolean [] visited = new boolean[26];
int before = 26;
for(char next : input)
{
int cur = next - 97;
if(before == cur) continue;
if(visited[cur]) continue loop;
visited[cur] = true;
before = cur;
}
cnt++;
}
System.out.print(cnt);
}
}
입력된 N개의 문자열 중 그룹단어의 개수를 출력하는 문제입니다. 동일한 문자가 연속되지 않은 상태로 존재한다면 해당 문자열은 그룹단어가 아닙니다.
방문배열을 통해 이전에 등장했던 문자인지 여부를 담아두고, 문자열을 순차적으로 탐색해주면 해결할 수 있습니다.
오랜만에 문자열 문제 풀어보았습니다^^