https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
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());
List<Character> list = new ArrayList<>();
int cnt=0;
while(n-- > 0){
String str = br.readLine();
list.clear();
boolean flag=true;
for(int j=0; j<str.length()-1; j++){
list.add(str.charAt(j));
if(str.charAt(j)!= str.charAt(j+1)){
if(list.contains(str.charAt(j+1))) flag = false;
}
}
if(flag) cnt++;
}
System.out.println(cnt);
}
}
알파벳을 하나씩 리스트에 추가하고,
알파벳과 바로 뒤 알파벳을 비교해서 서로 다른 알파벳이면서 뒤 알파벳이 기존 리스트에 있던 알파벳이면
그 단어는 그룹단어가 아니므로 카운팅하지 않는다.
boolean 형 알파벳 배열을 만들어 알파벳에 해당하는 위치에 true값을 넣고 true인지 체크하는 방식으로 해도될것같다.
'ALGORITHM' 카테고리의 다른 글
[JAVA] 백준 18870번- 좌표 압축 (0) | 2022.08.05 |
---|---|
[JAVA] 백준 1758번- 알바생 강호 (0) | 2022.08.05 |
[JAVA] 백준 2417번- 정수 제곱근 (0) | 2022.08.02 |
[JAVA] 백준 2941번- 크로아티아 알파벳 (0) | 2022.08.01 |
[JAVA] 백준 5622번- 다이얼 (0) | 2022.08.01 |