알고리즘/BOJ

백준 1316번 그룹 단어 체커

꾸준함. 2018. 10. 27. 01:35

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


간단한 문자열 처리 문제였습니다.

prev 변수를 통해 기존 알파벳과 다른 알파벳이 나오는지 확인하고 해당 알파벳이 이미 등장했던 알파벳이면 그룹단어가 아니라고 체크해주면 됩니다.


#include <iostream>

#include <string>

#include <cstring>

using namespace std;

 

bool alphabet[26];

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        int N;

        cin >> N;

 

        int cnt = 0;

        for (int i = 0; i < N; i++)

        {

                 memset(alphabet, false, sizeof(alphabet));

                 string s;

                 cin >> s;

 

                 char prev = s[0];

                 alphabet[s[0] - 'a'] = true;

                 bool group = true;

                 for (int j = 1; j < s.length(); j++)

                         //기존과 다른 알파벳

                         if (s[j] != prev)

                         {

                                 prev = s[j];

                                 //이미 등장한 알파벳이 다시 나오면 그룹단어가 아니다

                                 if (alphabet[s[j] - 'a'])

                                 {

                                          group = false;

                                          break;

                                 }

                                 else

                                          alphabet[s[j] - 'a'] = true;

                         }

                         else

                                 continue;

 

                 if (group)

                         cnt++;

        }

        cout << cnt << "\n";

        return 0;

}


개발환경:Visual Studio 2017


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

반응형

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

백준 1032번 명령 프롬프트  (0) 2018.10.27
백준 10808번 알파벳 개수  (0) 2018.10.27
백준 5622번 다이얼  (0) 2018.10.27
백준 1152번 단어의 개수  (0) 2018.10.27
백준 1726번 로봇  (4) 2018.10.27