알고리즘/백준
[백준] 그룹 단어 체커_자바
Ellie67
2022. 11. 10. 23:51
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
문자열로 문자 배열 만듦.
바로 앞 문자와 비교해서 같으면 넘어가고
다른데 이전에 나온적 있다면 그룹 단어가 아님, 나온적 없다면 그룹 단어가 될 수 있음
이전에 나왔는지 확인하기 위해 알파벳 개수 크기로 int 배열 만들었다.
문자 배열에서 나온 알파벳을 확인하려면 확인 배열 인덱스가 알파벳-97인 부분 값이 1인지 확인하려고 했다.
1이면 이전에 나온 알파벳이고 그룹 단어 아님, 0이면 처음 나온 알파벳
import java.util.Scanner;
public class P1316 {
static char[] ch;
static int[] a;
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int tmp = n;
for(int i=0; i<n; i++){
a = new int[26]; // 알파벳 개수만큼
ch = sc.next().toCharArray();
a[ch[0]-97] = 1;
boolean flag = true;
for(int j=1; j<ch.length; j++){
if(ch[j]!=ch[j-1]) {
if(a[ch[j]-97]==1) {
flag = false;
}
else {
a[ch[j]-97] = 1;
}
}
}
if(!flag) {
tmp--;
}
}
System.out.println(tmp);
}
}