list 배열로 알파벳이 나왔던 건지 판단
1. 입력받은 str배열의 이전 위치와 현재 위치의 값이 다르다면 list 배열의 str[j-1]-'a' 에다가 1을 넣어준다.
(-'a'로 str이 문자배열이지만 숫자로 변경하여 저장가능)
2. 이때 만약 list 배열의 str[j]-'a' 에 저장된 값이 1이라면(이미 나온 적이 있음) flag=1로 바꿔주고 break로 반복문을 빠져나온다.
3. 반복문을 빠져나왔을 때 flag==0이라면(그룹단어임) 개수를 ++해준다.
#include<iostream>
#include<string>
using namespace std;
int main() {
int list[26] = { 0, };
int n;
cin >> n;
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 26; j++) {
list[j] = 0;
}
string str;
cin >> str;
int flag = 0;
for (int j = 1; j < str.size(); j++) {
if (str[j - 1] != str[j]) {
list[str[j - 1] - 'a'] = 1;
if ((list[str[j]-'a']) == 1) {
flag = 1;
break;
}
}
}
if (flag == 0)
cnt++;
}
cout << cnt;
return 0;
}
'PS > 백준' 카테고리의 다른 글
[C++] 백준 2231: 분해합 (0) | 2020.12.23 |
---|---|
[C++] 백준 2798번: 블랙잭 (0) | 2020.12.23 |
[C++] 백준 2941번: 크로아티아 알파벳 (0) | 2020.12.08 |
[C++] 백준 2667번: 단지번호붙이기 (0) | 2020.11.29 |
[C++] 백준 2178번: 미로 탐색 (0) | 2020.11.29 |
댓글