본문 바로가기
알고리즘

[C++]백준 9324번: 진짜 메시지

by Kwoncorin 2020. 5. 27.
728x90

https://www.acmicpc.net/problem/9324

 

9324번: 진짜 메시지

문제 스파이들은 사령부와 통신하기 위해서 SMTP(비밀 메시지 전송 프로토콜)를 사용해 비밀 회선으로 전자 메시지를 보낸다. 메시지가 적들에 의해 조작되어 보내진 것이 아닌 진짜 메시지라��

www.acmicpc.net

 

1. 문제 설명

 

메시지를 입력받았을 때 각 문자가 세 번 등장할 때 한번 더 문자가 삽입된 메시지라면 OK 아니라면 FAKE를 출력하면 된다.

 

string으로 메시지를 한번에 입력받아 문자가 세 번 등장했을 경우, 현재 문자의 다음 문자가 존재하고 다음 문자와 현재 문자가 같을 경우 계속해서 메시지를 확인하며 아닐 경우 FAKE를 출력하도록 하였다.

 

2. 코드

 

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int test_case;
    
    cin >> test_case;
    
    for(int i=0;i<test_case;i++)
    {
        char alpha[26]={0,};
        
        string message;
        
        bool check=true;
        
        cin >> message;
        
        for(int i=0;i<message.length();i++)
        {
            alpha[message[i]-'A']++;
            
            if(alpha[message[i]-'A']==3)
            {
                if(i+1<message.length()&&(message[i]==message[i+1]))
                {
                    i++;
                    alpha[message[i]-'A']=0;
                }
                else
                {
                    check=false;
                    break;
                }
            }
        }
        
        if(check)
            cout << "OK\n";
        else
            cout <<"FAKE\n";
        
    }
    return 0;
}
728x90