https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
솔루션
문자열을 입력을 받고,
해당 알파벳들을 방문처리를 한다.
만약 특정 지점에서 이미 방문 된 알파벳이 나왔는데, 그 알파벳이 이전 알파벳과는 다르다면 그룹 단어의 갯수를 줄인다.
각 테스트 케이스에서 그룹단어가 아닌 개수를 빼고 난 나머지를 출력한다.
코드
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int tc;
cin >> tc;
int cnt = tc;
while (tc--) {
bool is_visit[27] = { false, };
string str;
cin >> str;
is_visit[str[0] - 'a'] = true;
for (int i = 1; i < str.size(); i++) {
int idx = str[i] - 'a';
if (is_visit[idx] && str[i] !=str[i-1]) {
cnt--;
break;
}
else {
is_visit[idx] = true;
}
}
}
cout << cnt << '\n';
}
'백준' 카테고리의 다른 글
C++[백준]2211번 네트워크 복구 (0) | 2022.12.17 |
---|---|
C++[백준]10473번 인간 대포 (0) | 2022.12.16 |
C++[백준]1989번 부분배열 고르기 2 (0) | 2022.12.12 |
C++[백준]12025번 장난꾸러기 영훈 (0) | 2022.12.08 |
C++[백준]23634번 미안하다 이거 보여주려고 어그로 끌었다 (0) | 2022.12.06 |