View

반응형

 

알고리즘 분류: 구현, 문자열

문제 링크: https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

 

 

 

【 풀이 】

 

각 문자들이 끊기지 않으면서 연속해서 나타나는 경우의 단어의 개수를 세는 문제이다.

 

우선 각 문자의 등장 여부를 나타내는 알파벳 배열을 선언.

테스트 케이스 내에서 문자열을 입력받은 뒤 문자열의 각 글자를 검사.

이미 글자가 한번 나왔고, 연속되지 않는다면 break.

여기에 해당하지 않는다면, 글자에 해당하는 배열 요소를 true로 변경.

break 없이 문자열의 끝까지 갔다면 그룹 단어 체커의 개수를 +1 해준다.

 

 

 

 

【 코드 】

 

#include<iostream>
#include<string>
using namespace std;

bool alp[123];
int main(void) {
	int checker_cnt=0;
	int t,i;
	cin >> t;

	for (int T = 0; T < t; T++) {
		for (int j = 0; j < 123; j++) {
			alp[j] = false;
		}
		string s;
		cin >> s;
		int len = s.length();
		for (i = 0; i < len; i++) {
			if (alp[s[i]] == true) {
				if (s[i - 1] != s[i]) {
					break;
				}
			}
			alp[s[i]]=true;
		}
		if (i == len) {
			checker_cnt++;
		}
	}
	cout << checker_cnt;
}

 

 

 

728x90
반응형
Share Link
reply
250x250
반응형
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31