백준 11091 (c++) 알파벳 전부 쓰기
728x90
SMALL

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

 

11091번: 알파벳 전부 쓰기

팬그램은 26개의 알파벳, a~z를 최소 한번씩 모두 사용한 문장을 말한다. 아마 가장 유명한 문장은 이것일 것이다. "The quick brown fox jumps over the lazy dog." 꿍은 다른 문장들중에 팬그램인 것은 없는지

www.acmicpc.net

 

문제의 태그(분류)는 구현+문자열이다.

 

이런 문제가 처음 써보는 언어를 맛보기도 좋고 구현 능력에도 도움이 되겠지만

풀 때의 컨디션에 따라 즐겁기도, 지루하기도 한 것 같다.

 

getline으로 s를 입력받고, 해당 문자가 존재함을 alphabet이라는 bool형 배열에 체크했다.

이후 alphabet이 false, 즉 해당 인덱스의 알파벳이 존재하지 않는다면 missedS라는 string에 해당 문자를 이어넣었다.

 

 

 

 

코드

#include <iostream>
#include <string>
using namespace std;

int n;
int main(void) {
    cin >> n;
    cin.ignore();
    for (int i = 0; i < n; i++) {
        string s, missedS = "";
        bool alphabet[26];
        fill(alphabet, alphabet+26, false);
        bool isPangram = true;
        
        getline(cin, s);
        for (int i = 0; i < s.size(); i++) {
            if (s[i] >= 'A' && s[i] <= 'Z') {
                alphabet[(s[i] - 'A')] = true;
            }
            else if (s[i] >= 'a' && s[i] <= 'z') {
                alphabet[(s[i] - 'a')] = true;
            }
        }
        for (int i = 0; i < 26; i++) {
            if (!alphabet[i]) {
                isPangram = false;
                missedS += char(i + 97);
            }
        }
        if (isPangram) {
            cout << "pangram\n";
        }
        else {
            cout << "missing " << missedS << '\n';
        }
    }
    return 0;
}

 

 

728x90
LIST

'PS > BOJ' 카테고리의 다른 글

백준 1932 (C++) 정수 삼각형  (0) 2022.01.25
백준 8892 (C++) 팰린드롬  (0) 2022.01.19
백준 1431 (C++) 시리얼 번호  (0) 2022.01.13
백준 2744 (C++) 대소문자 바꾸기  (0) 2021.12.23
백준 2583 (C++) 영역 구하기  (0) 2021.11.27