혜랑's STORY

[HackerRank] Pangrams 본문

2021 SISS 21기 활동/여름방학 C언어

[HackerRank] Pangrams

hyerang0125 2021. 7. 24. 12:52

# 문제

 

# 풀이

char* pangrams(char* s) {
    int alpha[26]; memset(alpha, 0, sizeof(alpha));
    for(int i=0; i<strlen(s); i++){
        if(s[i]>='A' && s[i]<='Z'){
            alpha[s[i]-'A'] += 1;
        }
        else if(s[i]>='a' && s[i]<='z')
            alpha[s[i]-'a'] += 1;
    }
    for(int i=0; i<26; i++){
        if(alpha[i] == 0){
            return "not pangram";
        }
    }
    return "pangram";
}
  • pangram은 알파벳의 모든 글자를 사용해 만든 문장을 뜻한다. (이 문제에서는 복수 사용을 허용한 경우이다.)
  • 따라서 알파벳 개수 만큼의 배열을 초기화 하고 문장의 길이만큼 for문을 돌며 각 알파벳 자리에 등장한 횟수를 더하였다.
  • 두 번째 for문에서는 alpha 배열을 돌며 만약 한 번도 등장하지 않은 알파벳이 있다면 "not pangram"을 반환하였다.
  • 두 번째 for문에서 return하지 않았다면 pangram 문장이라는 뜻이므로 "pangram"을 반환하였다.

 

# 결과

'2021 SISS 21기 활동 > 여름방학 C언어' 카테고리의 다른 글

[HackerRank] Left Rotation  (0) 2021.07.31
[HackerRank] CamelCase  (0) 2021.07.31
[HackerRank] Caesar Cipher  (0) 2021.07.24
[HackerRank] Birthday Cake Candles  (0) 2021.07.18
[HackerRank] Sherlock and Divisiors  (0) 2021.07.18