출처 : https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

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

www.acmicpc.net

 

map을 이용해 이력이 있는 문자를 저장했다.

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

int groupCheck(string vString) {
	char chTemp;
	map<char, bool> mGroup;
	for (int i = 0; i < vString.size(); i++) {
		auto it = mGroup.find(vString[i]);
		if (it == mGroup.end()) {
			mGroup[vString[i]] = true;
			chTemp = vString[i];
		}
		else {
			if (chTemp != vString[i]) {
				return 0;
			}
		}
	}
	return 1;
}

int main(void) {
	string sTemp;
	int nCount;
	int nResult = 0;

	cin >> nCount;
	for (int i = 0; i < nCount; i++) {
		cin >> sTemp;
		nResult += groupCheck(sTemp);
	}
	cout << nResult;
    return 0;
}

+ Recent posts