No Rules Rules

그룹 단어 체커 (feat. 백준, 1316번) 본문

생활/코테

그룹 단어 체커 (feat. 백준, 1316번)

개발하는 완두콩 2022. 8. 11. 21:37
728x90
반응형

그룹 단어 체커
https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

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

www.acmicpc.net

 

반응형

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <cstring>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	register int N, ans = 0;
	string str;
	cin >> N;
	for (register int n = 0, i; n < N; ++n) {
		cin >> str;
		bool arr[26]{ false };
		arr[str.at(0) - 'a'] = true;
		for (i = 1; i < str.size(); ++i) {
			if (str.at(i - 1) != str.at(i) && arr[str.at(i) - 'a'])
				break;
			else
				arr[str.at(i) - 'a'] = true;
		}
		if (i == str.size())
			++ans;
	}
	cout << ans << "\n";
	return 0;
}
// *&)*@*
  1. 입력받은 문자열 중 첫번째 문자에 대해서 체크를 해둡니다. (arr[str.at(0) - 'a'] = true)
  2. 두번째 문자부터 끝까지 반복하며, 내 이전 문자와 현재의 문자가 다르고 현재의 문자가 이미 체크되어 있다면 종료시킵니다. (왜냐면 이전에 해당 문자가 나왔다는 의미이기 때문입니다.)
  3. 2번에서 종료되지 않고 끝까지 반복하였다면 카운팅합니다. (++ans)
  4. 카운팅된 값을 출력합니다.
728x90
반응형

'생활 > 코테' 카테고리의 다른 글

스택 (feat. 백준, 10828번)  (0) 2022.08.11
주유소 (feat. 백준, 13305번)  (0) 2022.08.11
크로아티아 알파벳 (feat. 백준, 2941번)  (0) 2022.08.11
다이얼 (feat. 백준, 5622번)  (0) 2022.08.11
상수 (feat. 백준, 2908번)  (0) 2022.08.11
Comments