상세 컨텐츠

본문 제목

Alternating String (CF Edu R 189 Div.2 - B)

PS,CP

by 코딩생활 2026. 5. 17. 16:00

본문

https://codeforces.com/contest/2225/problem/B


아이디어

s[i]==s[i+1]인 i의 개수를 세어봅시다.

 

만약 그 개수가 0이라면, 항상 가능합니다.

만약 그 개수가 1이라면, 앞에서부터 연속된 구간을 선택함으로써 가능하게 됩니다.

만약 그 개수가 2라면, s[i]==s[i+1]인 두 인덱스 i를 i1, i2라고 해봅시다. 그러면 구간 [i1+1,i2]에 대해서 연산을 적절히 수행해주면 항상 가능합니다.

만약 그 개수가 3이상이라면, 항상 불가능합니다.


아이디어

#include <iostream>
#include <string>
#define ll long long
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll T;
    string s;

    cin>>T;
    while (T--)
    {
        cin>>s;

        ll len=s.length(),i,cnt=0;

        for (i=0;i<len-1;i++)
            if (s[i]==s[i+1])
                cnt++;

        cout<<(cnt<=2?"YES":"NO")<<"\n";
    }
}

'PS,CP' 카테고리의 다른 글

세 용액 (JUNGOL 2303)  (0) 2026.05.18
교차하지 않는 원의 현들의 최대집합 (JUNGOL 1769)  (0) 2026.05.18
A Number Between Two Others (CF Edu R 189 - A)  (0) 2026.05.17
먼 카드 (JUNGOL 8565)  (0) 2026.05.16
팬미팅 (JUNGOL 5768)  (0) 2026.05.16

관련글 더보기