알고리즘 풀이/백준
[1316] 백준 : 그룹 단어 체커(C++)
데롱디롱
2020. 4. 24. 14:52
728x90
* 접근 방법
- 알파벳으로 키로 갖는 map을 생성
- 처음 나오는 알파벳은 map에 삽입 (key의 존재 유무만 중요하기 때문에 value값은 상관 없음)
- 이미 존재하는 알파벳의 경우, 바로 앞에 있지 않으면 그룹단어 아니므로 false리턴
#include <iostream>
#include <map>
#include <string>
using namespace std;
bool check(string s)
{
map<char, int> m;
bool result = true;
for (int i = 0; i < s.size(); i++)
{
if (m.count(s[i]) == 0)
{
m.insert(make_pair(s[i], 1));
}
else {
if (s[i - 1] != s[i])
result = false;
}
}
return result;
}
int main()
{
int T = 0, num = 0;
cin >> T;
for (int i = 0; i < T; i++)
{
string s;
cin >> s;
if (check(s)) num++;
}
cout << num;
return 0;
}