본문 바로가기

코딩 테스트

백준 1316 : 그룹 단어 체커

 

문자열에서 같은 문자가 나왔을 때 연속적인지 판단해야한다.

map 에 value 를 int 로 하고 value 에 해당 문자의 위치에 인덱스를 넣어 연속적인지 판단한다.

 

#include <iostream>
#include <map>
using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);	cout.tie(0);

	int n;
	cin >> n;

	int answer = 0;
	for(int i=0;i<n;i++)
	{
		string s;
		cin >> s;

		map<char,int> mp;
		bool flag = true;
		for(int j=0; j < s.size();j++)
		{
			if(mp.find(s[j]) != mp.end())
			{
            	// 같은 문자가 연속적인지 확인해여. 연속이라면 인덱스의 차가 1입니다.
				if((j - mp[s[j]]) == 1)
				{
					mp[s[j]] = j;
				}
				else
				{
					flag = false;
				}
			}
			else
			{
				mp[s[j]] = j;
			}
		}
		if(flag)
		{
			answer++;
		}
	}


	cout << answer << endl;
	return 0;
}

'코딩 테스트' 카테고리의 다른 글

백준 1120 문자열  (0) 2025.03.02
프로그래머스 - 섬 연결하기  (1) 2024.11.15
백준 1644 소수의 연속합  (0) 2024.11.15
백준 - 12865 배낭 문제  (0) 2024.11.13
백준 1010 - 다리 놓기  (0) 2024.11.11