Coding Is My Life

코딩은 인생

c++ 백준 문제 풀이

백준- c++/c 그룹 단어 체커[1316번]

산기대 컴공 2020. 10. 15. 23:54
728x90

https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때�

www.acmicpc.net

이번 문제도 간단하다.

입력값을 배열로 받은 다음에 하나 하나 방문하면서 다음 단어가 다를 경우 ck함수를 이용하여 비교해 주는 방법으로 매우 간단하게 

풀었다 ㅎㅎ

 

소스코드

#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <stdio.h>
using namespace std;
int word_len(void);
char word[100+1];
int ck(char w,int index){
    for(int i = index+1;i<word_len();i++){
        if(w == word[i]){
            return -1;
        }
    }
    return 1;
}
int word_len(void){
    int cnt = -1;
    for(int i = 0;i<100;i++){
        if(word[i] == '@')
            break;
        else
            cnt++;
    }
    return cnt;
}
int main(void){
    int T,result = 0;
    cin >> T;
    for(int i = 0;i<T;i++){
        memset(word,'@',100+1);
        cin >> word;
        for(int j = 0;j<word_len();j++){
            if(word[j] == word[j+1]){
                continue;
            }
            else{
                if(ck(word[j],j) == -1){
                 result--;
                    break;
                }
            }
        }
        result++;
    }
    cout << result;
}

728x90