서의 공간

[백준] 1316_그룹 단어 체커 본문

Algorithm/백준

[백준] 1316_그룹 단어 체커

홍서의 2020. 12. 30. 23:09

1316번: 그룹 단어 체커 (acmicpc.net)

 

#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