
출처 : 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;
}
'Coding Test > Baekjoon' 카테고리의 다른 글
[DK]백준 - 듣보잡(1764) - C++ (0) | 2021.08.05 |
---|---|
[DK]백준 - 크로아티아 알파벳(2941) - C++ (0) | 2021.07.26 |
[DK]백준 - 열 개씩 끊어 출력하기(11721) - C++ (0) | 2021.07.14 |
[DK]백준 - 숫자의 개수(2577) - C++ (0) | 2021.07.12 |
[ST]백준 - 정열적인 정렬(16212) - Java (0) | 2021.07.07 |