그룹 단어 체커
14 June 2019
문제 : https://www.acmicpc.net/problem/1316
이번은 String에서 연속되지 않은 반복을 찾는 문제를 풀어보도록 하겠습니다.
import java.util.Scanner;
public class Main {
private static Integer[] alphabetArry = new Integer[26];
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int size = scanner.nextInt();
int ret = 0;
for (int i = 0; i < size; i++) {
boolean isGroupNum = true;
for (int m = 0; m < 26; m++) {
alphabetArry[m] = 0;
}
String str = scanner.next();
char prev = '\n';
for (int k = 0; k < str.length(); k++) {
char curChar = str.charAt(k);
if (curChar != prev) {
alphabetArry[curChar - 'a']++;
prev = curChar;
if (alphabetArry[curChar - 'a'] > 1) {
isGroupNum = false;
break;
}
}
}
if (isGroupNum) {
ret++;
}
}
System.out.println(ret);
}
}
먼저 각 알파벳의 등장 횟수를 저장할 array를 생성하고,모두 0으로 초기화시켜주도록 합니다.이후, string의 char마다 바로 앞에 나왔던 char와 비교를 하여 같지 않으면 alphabetArry에서 1을 더해줍니다.
이 때, alphabetArry가 1보다 큰 경우는 이미 한번 나오고 다시 띄어서 나온 경우이므로 ret에 더해주지 않습니다.
위와 같은 방식으로 체크하여 ret을 return 해주도록 합니다.