알고리즘/BOJ

백준 9324번 진짜 메시지

꾸준함. 2018. 11. 7. 14:20

문제 링크입니다: https://www.acmicpc.net/problem/9324


동일한 문자가 3번 나올 때마다 해당 문자가 다음 인덱스에도 등장해야지 진짜 메시지입니다.

따라서, 동일한 문자가 3번 나왔을 때 해당 문자열이 끝난다거나, 다음 인덱스에 다른 문자가 있다면 가짜 메시지입니다!


#include <iostream>

#include <string>

using namespace std;

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        int test_case;

        cin >> test_case;

 

        for (int t = 0; t < test_case; t++)

        {

                 bool real = true;

                 string s;

                 cin >> s;

 

                 int alphabet[26] = { 0 };

                 for (int i = 0; i < s.length(); i++)

                 {

                         alphabet[s[i] - 'A']++;

                         if (alphabet[s[i] - 'A'] == 3)

                         {

                                 //문자열의 끝

                                 if (i == s.length() - 1)

                                 {

                                          real = false;

                                          break;

                                 }

                                 //다음 인덱스에 다른 문자

                                 else if (s[i + 1] != s[i])

                                 {

                                          real = false;

                                          break;

                                 }

                                 i++;

                                 alphabet[s[i] - 'A'] = 0;

                         }

                 }

                 if (real)

                         cout << "OK\n";

                 else

                         cout << "FAKE\n";

        }

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 4949번 균형잡힌 세상  (11) 2018.11.09
백준 5612번 터널의 입구와 출구  (0) 2018.11.07
백준 2110번 공유기 설치  (2) 2018.11.07
백준 2805번 나무 자르기  (0) 2018.11.07
백준 1654번 랜선 자르기  (0) 2018.11.07