서의 공간
[백준] 1316_그룹 단어 체커 본문
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
// 연속이 끊긴 알파벳이 그 전에 등장했는지의 여부
// 예를 들어 aaabba에서 맨 뒤 a 위치에서 그 앞전에 a가 이미 등장했었는지를 알아야 함
bool presented[26];
bool Check(string& str)
{
bool ret = true;
presented[str[0] - 'a'] = true;
char cur = str[0];
for (size_t i = 1; i < str.length(); ++i) {
if (cur != str[i]) {
if (presented[str[i] - 'a']) {// 이미 등장했었다면
ret = false;
break;
}
else { //등장하지 않았었다면
presented[str[i] - 'a'] = true;
}
}
cur = str[i];
}
return ret;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int N, ret = 0;
cin >> N;
while (N--) {
string str;
cin >> str;
ret += Check(str);
fill(presented, presented + 26, 0);
}
cout << ret;
return 0;
}
'Algorithm > 백준' 카테고리의 다른 글
[백준] 2630_색종이 만들기 (0) | 2021.01.03 |
---|---|
[백준] 9375_패션왕 신해빈 (0) | 2021.01.03 |
[백준] 2941_크로아티아 알파벳 (0) | 2020.12.30 |
[백준] 1629_곱셈 (0) | 2020.12.11 |
[백준] 1697_숨바꼭질 (0) | 2020.12.03 |
Comments