728x90
https://www.acmicpc.net/problem/9324
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
'알고리즘' 카테고리의 다른 글
[C++]백준 10709번: 기상캐스터 (0) | 2020.05.27 |
---|---|
[C++]백준 1138번: 한 줄로 서기 (0) | 2020.05.27 |
[C++]백준 10984번: 내 학점을 구해줘 (0) | 2020.05.27 |
[C++]백준 17174번: 전체 계산 횟수 (0) | 2020.05.27 |
[C++]백준 1237번: 정ㅋ벅ㅋ (0) | 2020.05.26 |