View
알고리즘 분류: 구현, 문자열
문제 링크: https://www.acmicpc.net/problem/1316
【 풀이 】
각 문자들이 끊기지 않으면서 연속해서 나타나는 경우의 단어의 개수를 세는 문제이다.
우선 각 문자의 등장 여부를 나타내는 알파벳 배열을 선언.
테스트 케이스 내에서 문자열을 입력받은 뒤 문자열의 각 글자를 검사.
이미 글자가 한번 나왔고, 연속되지 않는다면 break.
여기에 해당하지 않는다면, 글자에 해당하는 배열 요소를 true로 변경.
break 없이 문자열의 끝까지 갔다면 그룹 단어 체커의 개수를 +1 해준다.
【 코드 】
#include<iostream>
#include<string>
using namespace std;
bool alp[123];
int main(void) {
int checker_cnt=0;
int t,i;
cin >> t;
for (int T = 0; T < t; T++) {
for (int j = 0; j < 123; j++) {
alp[j] = false;
}
string s;
cin >> s;
int len = s.length();
for (i = 0; i < len; i++) {
if (alp[s[i]] == true) {
if (s[i - 1] != s[i]) {
break;
}
}
alp[s[i]]=true;
}
if (i == len) {
checker_cnt++;
}
}
cout << checker_cnt;
}
728x90
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1205번: 등수 구하기 [C++] (0) | 2023.09.10 |
---|---|
[백준] 1343번: 폴리오미노 [C++] (0) | 2023.09.01 |
[백준] 1927번: 최소 힙 [C++] (0) | 2023.06.14 |
[백준] 17175번: 피보나치는 지겨웡~ [C++] (0) | 2023.06.14 |
[백준] 24416번: 알고리즘 수업 - 피보나치 수 1 [C++] (0) | 2023.06.05 |
reply