코딩테스트/백준
[백준-자바] 1316번 그룹 단어 체커 / 2022.01.24
강원대목동녀
2022. 1. 24. 00:52
728x90
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // 단어 입력 개수
int count = 0; // 그룹단어 개수
for(int i=0; i<N; i++) {
String str = sc.next();
char [] alpha = new char [str.length()];
int last = 0;
// 입력받은 문자열을 문자로 쪼개서 배열에 입력
for(int j=0; j<str.length(); j++) {
alpha[j] = str.charAt(j);
}
// 단어의 길이가 2 이하라면 무조건 그룹 단어
if(str.length()<=2) {
count++;
continue;
}
// 그룹 단어인지 아닌지 판단
loop: // for문 이름 지정
for(int k=0; k<str.length()-1; k++) {
if(alpha[k] == alpha[k+1]) // k번과 k+1이 같으면 넘어가
continue;
if(alpha[k] != alpha[k+1]) { // 만약 다르다면
for(int h=0; h<k; h++) { // k+1 전에 일치하는 단어가 있으면 그룹단어가 아님
if(alpha[h] == alpha[k+1]) {
last++;
break loop; // 이름 loop인 for문 나가기
}
}
// 일치하는 단어가 없으면 다음 k번 진행
}
}
if(last == 0)
count++;
}
System.out.println(count);
}
}
풀이 :
1. 단어의 길이가 2 이하라면 무조건 그룹 단어이다
2. 단어의 길이가 3 이상이라면 ?
728x90