문자열에서 같은 문자가 나왔을 때 연속적인지 판단해야한다.
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 |