[HackerRank/C++] Pangrams

2023. 3. 2. 17:34코딩테스트 해커랭크/Algorithms -Easy

문자열 s가 모든 알파벳을 포함하는 판그램인지 판독한다

 

대소문자는 무시하며 판그램일 경우 pangram, 아닐 경우 not pangram을 return한다

string pangrams(string s)
{
    array<int, 26> alphabet = {};
    
    for (size_t i = 0; i < s.size(); ++i)
    {
        if ('a' <= s[i] && s[i] <= 'z')
            ++alphabet[s[i] - 'a'];
        else if ('A' <= s[i] && s[i] <= 'Z')
            ++alphabet[s[i] - 'A'];
    }
    
    bool pangrams = true;
    
    for (auto p : alphabet)
    {
        if (p == 0)
            pangrams = false;
    }
    
    return pangrams ? "pangram" : "not pangram";
}

알파벳의 갯수를 세기 위한 int 26개의 배열 alphabet을 선언한다

 

이후 s를 순회하며 알파벳의 갯수를 저장한다

 

만약 alphabet 배열의 값중 하나라도 0이 있다면 s는 pangram이 아니므로 not pangram을, 0이 없다면 pangram을 return한다