Post List

[BOJ] 백준 1316 그룹 단어 체커

 백준 1316 그룹 단어 체커


간단하게, 배열 26칸 선언 후 이미 나왔는데 또 나온경우, 그리고 연달아 나오지 않은 경우가 나온다면 세지 않는 방식입니다.

소스코드 : 

#include 
#include 
using namespace std;

int main() {
 int n; cin >> n; cin.ignore();
 int check = 0;
 for (int i = 0; i < n; i++) {
  int a[26] = { 0, };
  string tmp; getline(cin, tmp);
  int len = tmp.length();
        // 바로 직전에 나왔던 문자를 저장하는 변수
  char lastChar = tmp[0];
  bool flag = false;
  for (int i = 0; i < len; i++) {
            // 연달아 나왔거나, 혹은 처음 나오는 문자 일 경우
   if (lastChar == tmp[i] || a[tmp[i] - 'a'] == 0) {
    lastChar = tmp[i];
                // 값을 1로 바꾸어 만났다는 표시 해줌.
    a[tmp[i] - 'a'] = 1;
   }
   else {
    flag = true;
    break;
   }
  }
  if (!flag) check++;
 }
 cout << check << endl;
}

댓글