• toc {:toc}

문제

κ·Έλ£Ή 단어λ₯Ό μ°ΎλŠ” λ¬Έμ œμ΄λ‹€.

κ·Έλ£Ή λ‹¨μ–΄λž€ 단어에 μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  λ¬Έμžμ— λŒ€ν•΄μ„œ, 각 λ¬Έμžκ°€ μ—°μ†ν•΄μ„œ λ‚˜νƒ€λ‚˜λŠ” κ²½μš°λ§Œμ„ λ§ν•œλ‹€.

EX) aaabbbccc β†’ 각 λ¬Έμžκ°€ λͺ¨λ‘ μ—°μ†ν•΄μ„œ λ‚˜νƒ€λ‚œλ‹€.

abc β†’ λͺ¨λ‘ μ—°μ†ν•΄μ„œ λ‚˜νƒ€λ‚œλ‹€.

abac β†’ b와 cλŠ” λ¬Έμ œκ°€ μ—†μ§€λ§Œ a의 경우 μ—°μ†ν•΄μ„œ λ‚˜νƒ€λ‚˜λŠ” 것이 μ•„λ‹ˆλΌ λ–¨μ–΄μ Έμ„œ λ‚˜νƒ€λ‚˜κΈ° λ•Œλ¬Έμ— κ·Έλ£Ή 단어가 μ•„λ‹ˆλ‹€.

풀이

  1. λΈ”λ‘μœΌλ‘œ 묢이렀면 λ–¨μ–΄μ Έ μžˆλŠ” κ²½μš°κ°€ μ—†μ–΄μ•Ό ν•œλ‹€.
  2. μ΄λŠ” μ•ŒνŒŒλ²³μ΄ λ³€κ²½λ˜λŠ” 지점 이후 λΆ€ν„° 이전 μ•ŒνŒŒλ²³μ΄ λ’· μžλ¦¬μ— μ‘΄μž¬ν•΄μ„œλŠ” μ•ˆλœλ‹€.
  3. EX) aaabbbccc일 경우 a β†’ b 둜 λ³€κ²½λ˜λŠ” 지점뢀터 aκ°€ λ’·μͺ½ μΈλ±μŠ€μ— μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ λœλ‹€.
#include <iostream>
#include <string>
 
using namespace std;
 
bool isGroup(string s);
 
int main()
{
	int num, result=0;
	string str;
	cin >> num;
	for(int i=0; i<num; i++)
	{
		cin >> str;
		if(isGroup(str))
			result++;
	}
	cout << result << endl;	
	
	return 0;
}
 
bool isGroup(string s)
{
	char bAlpa;
	for(int i=0; i<s.size()-1; i++)
	{
		if(s[i]!=s[i+1])	// μ•ŒνŒŒλ²³μ΄ λ°”λ€ŒλŠ” μ‹œμ  aabb 이면 1-2인덱슀 사이
		{
			bAlpa = s[i];
			for(int j = i+1; j<s.size(); j++)		// λ’· μ•ŒνŒŒλ²³ 쑰사 ν›„ νŒλ‹¨
			{
				if(bAlpa == s[j])
					return false;
			}
		}
		
	}
	return true;
}