C++/백준 C++

[C/C++] 백준 1316번 그룹 단어 체커

CE : 하랑 2024. 5. 28. 17:36

 

 

 

 

 

 


 

코드

#include <iostream>
#include <string>
#include <map>

int main()
{
	std::map<char, int> checkMap; // 단어 개수 계산용 맵
	int N; 
	int count = 0;
	bool Groupcheck = false;
	std::cin >> N;

	for (int i = 0; i < N; i++)
	{
		std::string word;
		std::string midword="";
		std::cin >> word;

		midword += word[0]; // 비교를 위해 첫 인덱스 값은 넣어줌

		// 연속해서 붙는 문자 거르기 용
		for (int j = 1; j < word.size(); j++)
		{
			if (midword[midword.size()-1] != word[j])
			{
				midword += word[j];
			}
		}

		// 걸러진 문자열에서 문자의 개수가 1보다 큰 경우 -> 그룹 단어가 아니다.
		for (int i = 0; i < midword.size(); i++)
		{
			checkMap[midword[i]]++;

			if (checkMap[midword[i]] > 1)
			{
				Groupcheck = true;
				break;
			}
		}

		// 그룹 단어가 확인될 경우만 카운트 증가
		if (false == Groupcheck)
		{
			++count;
		}

		Groupcheck = false;
		checkMap.clear(); // 한 사이클 맵정리
	}

	std::cout << count;
   
	checkMap.clear(); // 최종 맵 정리
}