[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
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
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
댓글을 사용할 수 없습니다.