<문제>
https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
<내가 제출한 코드>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int test,cnt,i;
scanf("%d", &test);
cnt = test;
while (test--) {
int alpha[27] = { 0 };
char word[101] = { 0 };
scanf("%s", &word);
for (i = 0; word[i] != '\0'; i++) {
if (alpha[word[i] - 'a']) {
if (word[i]!= word[i-1]) {
cnt--;
break;
}
else continue;
}
alpha[word[i] - 'a'] = 1;
}
}
printf("%d", cnt);
}
입력한 단어를 word라는 char배열에 저장하고 문자 하나하나가 나올때마다 alpha라는 배열에 나왔는지를 체크해준다.
ex) b가 입력됨 --> 2번째 원소를 1로 바꿈
만약 다음 원소가 b인데 이미 alpha의 2번째 원소는 이미 1이라면 이전에 b가 나왔다는 얘기이고 여기에서 word배열에서 이전 원소가 b가 아니였다면 이 단어는 그룹 단어가 아닌 것이다.
마지막에 출력할 cnt(카운트)는 원래 단어개수로 초기화 시켜준다음에 이 단어가 그룹단어가 아니라고 판명이 났을때 하나씩 줄이고 break를 통해 반복문을 빠져나갈 수 있도록 해주었다.
'⌨️ Algorithm > C' 카테고리의 다른 글
2/3 [C] 백준 1439번 - 뒤집기 (0) | 2022.02.03 |
---|---|
2/3 [C] 백준 1312번 - 소수 (0) | 2022.02.03 |
1/28 [C] 백준 1094번 - 막대기 (0) | 2022.01.28 |
1/28 [C] 백준 1292번 - 쉽게 푸는 문제 (0) | 2022.01.28 |
1/27 [C] 백준 1158번 - 요세푸스 문제 (0) | 2022.01.27 |
댓글