Pangrams

최대 1 분 소요

HackerRank 알고리즘 문제 풀이

분류

Practice > Algorithms > Strings

문제 링크 : https://www.hackerrank.com/challenges/pangrams/problem

풀이

a-z까지의 모든 알파벳이 나타나면 ‘pangram’이라고 한다. (대소문자를 별도로 구분하지 않는다.)

문자가 공백일수도 있으므로 알파벳인지 확인하고, 대소문자에 따라 적절히 인덱스 값을 구하여 해당 알파벳이 사용되었음을 체크한다.

‘pangram’ 인 경우 ‘pangram’을 출력하고, 그렇지 않은 경우 ‘not pangram’을 출력한다.

소스 코드

#include <bits/stdc++.h>

using namespace std;

// Complete the pangrams function below.
string pangrams(string s) {
    bool chk[26] = { false };
    for (char c : s) {
        int idx;
        if (c >= 'A' && c <= 'Z') {
            idx = c - 'A';
            chk[idx] = true;
        }
        else if (c >= 'a' && c <= 'z') {
            idx = c - 'a';
            chk[idx] = true;
        }
    }
    for (int i = 0; i != 26; ++i) {
        if (!chk[i]) {
            return "not pangram";
        }
    }
    return "pangram";
}

int main()
{
    ofstream fout(getenv("OUTPUT_PATH"));

    string s;
    getline(cin, s);

    string result = pangrams(s);

    fout << result << "\n";

    fout.close();

    return 0;
}