Problem Solving/BOJ

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

nageune 2023. 2. 19. 18:00
728x90
반응형

1316번: 그룹 단어 체커

 

문제

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

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

 

 

풀이

문자열 내에서 같은 문자는 연속해서만 나타나면 그룹 단어다. 따라서 i번째 문자와 i+1번째 문자가 다른 경우에만 이후에 i번째 문자와 같은 문자가 있는지 확인해주면 된다.

 

 

코드

#include <bits/stdc++.h>
using namespace std;

int main() {
  int n, ans = 0;
  cin >> n;
  for (int i = 0; i < n; i++) {
    string str;
    cin >> str;
    int cnt = 0;
    for (int j = 0; j < str.length() - 1; j++)
      if (str[j] != str[j + 1]) {
        string str1 = str.substr(j + 1, str.length() - j - 1);
        int error = count(str1.begin(), str1.end(), str[j]);
        if (error != 0)
          cnt++;
      }
    if (cnt == 0)
      ans++;
  }
  cout << ans << '\n';
  return 0;
}

 

728x90
반응형