[백준] 1316. 그룹 단어 체커

Algorithm|2021. 11. 16. 13:56
반응형
 

1316번: 그룹 단어 체커

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

www.acmicpc.net

 

IDEA

1. 크기 26 int 배열(map)을 만들고

2. 단어 길이만큼 탐색

   2-1 해당 단어에 map의 값이 1 이상이면, 이미 있었다는 뜻이므로, 그룹 단어가 아님

      2-1-1 단, 한 글자 이전에 같은 글자가 있는 경우는 제외 

      2-1-2 그룹단어가 아니면 flag를 올림

   2-2 map에 해당 글자가 있으면 1을 증가시킴

 

 

실수 ,,, 하나의 단어를 검사하고 map이랑 flag를 초기화하는 걸 놓침

 

int main(void)
{
    string word; 
    int n;
    int count = 0;
    int flag = 0;
    
    cin >> n;
    
    for(int i=0; i<n; i++)
    {
        cin >> word;
        vector<int> map(26);
        flag = 0;
        
        if(word.size() == 1) // 1글자일 경우
        {
            count++;
            continue;
        }
        
        for(int k=1; k<word.size(); k++) //2글자 이상일 경우
        {
            map[word[k-1]-97] = 1;
            if((word[k-1] != word[k])&&(map[word[k]-97] > 0)) //그룹단어가 아닌 경우
                flag = 1;
            
        }
        
        if(flag == 0)
            count++;
    }
    
    cout << count;
    
    return 0;
}

 

반응형

'Algorithm' 카테고리의 다른 글

[Programmers] 소수만들기  (0) 2021.11.17
[백준] 1157. 단어 공부  (0) 2021.11.16
[백준] 1159. 농구경기  (0) 2021.11.15
[백준] 5822. 다이얼  (0) 2021.11.15
[백준] 8958. OX퀴즈  (0) 2021.11.15

댓글()