문제 풀이/Baekjoon Online Judge
[Baekjoon Online Judge] 1316번: 그룹 단어 체커
hyeonic
2021. 1. 5. 23:19
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Baekjoon1316 {
static boolean isGroupWord(String word) {
List<Character> checked = new ArrayList<>();
Character prevChar = null;
for (int j = 0; j < word.length(); j++) {
Character curChar = word.charAt(j);
if (checked.contains(curChar)) {
if (prevChar == curChar) continue;
else {
return false;
}
} else {
checked.add(curChar);
prevChar = curChar;
}
}
return true;
}
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(bufferedReader.readLine());
int count = n;
for (int i = 0; i < n; i++) {
String word = bufferedReader.readLine();
if (isGroupWord(word)) continue;
else --count;
}
bufferedWriter.write(String.valueOf(count));
bufferedWriter.flush();
bufferedReader.close();
bufferedWriter.close();
}
}
이미 나왔던 문자가 이전 문자인 경우 그룹단어로 인정된다. 만약 이전 값과 같지 않다면 그 단어는 그룹 단어가 아니기 때문에 count 값을 줄인다.