ALGORITHM/BOJ
[백준]1316 그룹 단어 체커
0298
2021. 11. 8. 01:00
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
2021-11-07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine().trim());
int N = Integer.parseInt(st.nextToken());
boolean[] vtd = new boolean[27];
int count = 0;
for(int i = 0; i < N; i++) {
st = new StringTokenizer(bf.readLine());
String str = st.nextToken();
Arrays.fill(vtd, false);
boolean flag = false;
int prev = str.charAt(0) - 'a';
vtd[prev] = true;
for(int j = 1; j < str.length(); j++) {
int cur = str.charAt(j) - 'a';
if(vtd[cur] && cur != prev) {
flag = true;
break;
} else {
vtd[cur] = true;
prev = cur;
}
}
if(!flag) count++;
}
System.out.println(count);
}
}
|
cs |
#문제풀이
vtd 배열을 만들어서 사용한적이 있는지 체크를 한다.
vtd 배열에서 문자가 사용한적이 있는 문자이면서 바로 전 문자가 현재 문자와 같으면 계속 이어지는 그룹 단어이므로 상관없지만, 바로 전 문자가 현재 문자와 같지 않으면 그룹 단어가 아니다.