728x90
728x90
문제
- ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.
- 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다.
- 첫째 줄에 그룹 단어의 개수를 출력한다.
소스 코드
-
알파벳 위치 값을 갖는 arr와 입력 값을 string으로 받았다. 그리고 단어에 대한 flag를 설정해줬다.
-
입력받은 string의 첫 번째 index부터 확인하여, 해당 알파벳에 대한 위치 값을 증가시킨다.
-
다음 알파벳을 확인할 때 만약 중복된 알파벳 값이며, 반복된 알파벳 값이 아니면 flag를 증가시킨다.
-
flag가 1이 아니면 그룹 단어를 증가시킨다.
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
int N= 0;
cin >> N;
int group_word = 0;
for(int i=0; i<N; i++)
{
int arr[26] = {0,}, flag = 0;
string word;
cin >> word;
for(int j=0; j<word.length(); j++)
{
arr[(int)word[j]-97]++;
if(arr[(int)word[j]-97] > 1 && j>=1 && word[j] != word[j-1])
{
flag = 1;
break;
}
}
if(flag == 0)
{
group_word++;
}
}
cout << group_word;
return 0;
}
728x90
728x90
'Language > C++' 카테고리의 다른 글
[프로그래머스/C++] N-Queen - 컴도리돌이 (0) | 2021.07.30 |
---|---|
[BOJ] 스택(Stack)- 10828,1874,2504,4889,1918,6198 - 컴도리돌이 (0) | 2021.03.01 |
[C++][백준 5622][문자열] 다이얼 - 컴도리돌이 (0) | 2021.01.16 |
[C++][백준 2908][문자열] 상수 - 컴도리돌이 (0) | 2021.01.15 |
[C++][백준 1157][문자열] 단어 공부- 컴도리돌이 (0) | 2021.01.14 |