[C++ 백준] 1316 그룹 단어 체커
728x90
반응형
블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.
문제 설명
- 그룹 단어: 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우
- ex) ccazzzzbb -> 그룹 단어, kin -> 그룹 단어, aabbbccb -> 그룹 단어 아님
- 단어 N개를 입력받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.
(단, N <= 100, 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100)
풀이 전략
- 알파벳 개수만큼 bool형식의 배열을 선언
- 입력받은 문자열을 순회하며 새로운 알파벳을 처음 입력받았을 때, 배열에서 입력받은 알파벳 인덱스의 bool값 변경
- 동일한 알파벳이 나오지 않을 때까지 문자열 인덱스를 증가시키며 순회
- 문자열 순회 중 이미 전에 나온 알파벳이 있다면 그룹 단어가 아니다.
소스 코드
#include <iostream>
#include <string>
using namespace std;
bool IsCheak( string str )
{
bool checkStr[26] = { false };
for (int i = 0; i < str.length(); ++i)
{
if (checkStr[str[i] - 'a'])
return false;
else
{
char temp = str[i];
checkStr[str[i] - 'a'] = true;
while (true)
{
if (temp != str[++i])
{
--i;
break;
}
}
}
}
return true;
}
int main()
{
int result = 0;
int count;
cin >> count;
for (int i = 0; i < count; ++i)
{
string str;
cin >> str;
if (IsCheak(str))
++result;
}
cout << result;
}
링크
https://www.acmicpc.net/problem/1316
728x90
반응형
'문제풀이 > BOJ' 카테고리의 다른 글
[C++ 백준] 1193 분수 찾기 (0) | 2021.05.22 |
---|---|
[C++ 백준] 1152 단어의 개수 (0) | 2021.05.18 |
[C++ 백준] 2908 상수 (0) | 2021.05.15 |
[C++ 백준] 5622 다이얼 (0) | 2021.05.14 |
[C++ 백준] 2675 문자열 반복 (0) | 2021.05.12 |
댓글
이 글 공유하기
다른 글
-
[C++ 백준] 1193 분수 찾기
[C++ 백준] 1193 분수 찾기
2021.05.22 -
[C++ 백준] 1152 단어의 개수
[C++ 백준] 1152 단어의 개수
2021.05.18 -
[C++ 백준] 2908 상수
[C++ 백준] 2908 상수
2021.05.15 -
[C++ 백준] 5622 다이얼
[C++ 백준] 5622 다이얼
2021.05.14