코딩로그
[백준/BOJ/C++] 11091번 알파벳 전부 쓰기 본문
[문제]
팬그램은 26개의 알파벳, a~z를 최소 한번씩 모두 사용한 문장을 말한다. 아마 가장 유명한 문장은 이것일 것이다. "The quick brown fox jumps over the lazy dog."
꿍은 다른 문장들중에 팬그램인 것은 없는지 궁금해졌다. 그래서 여러분이 할 일은 꿍을 위해 어떠한 문장이 팬그램인지 아닌지를 판별해주는 프로그램을 짜는 것이다.
팬그램에서는 알파벳의 대소문자를 구분하지 않는다고 하자.
[입력]
입력의 첫 번째 줄은 1 ≤ N ≤ 50의 N이 주어진다.
다음 N개의 줄은 각각 한 문장이 주어지는데, 알파벳의 대소문자, 공백, 숫자, 그리고 분장부호들(. , ? ! ' ")이 포함될 수 있다.
각 문장은 최소 한개의 문자를 포함하며 100개를 넘지는 않는다.
[출력]
각 입력에 대해, 팬그램에 해당하면 "pangram"을 출력한다.
만약 팬그램이 아닐 경우, "missing"을 출력한 후 한칸 띄고 문장에 나타나지 않은 문자들을 모두 출력한다. 이때, 나타나지 않은 문자들은 모두 소문자로 출력하며 알파벳 순서대로 정렬된상태로 출력해야 한다.
[Source Code]
#include <stdio.h>
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
int main() {
int num;
cin >> num;
cin.ignore();
for(int i = 0; i < num; i++){
int alph[26] = {0, };
string input;
getline(cin, input);
for(int j = 0; j < input.length(); j++){
if(input[j] >= 'A' && input[j]<= 'Z')
alph[input[j] - 'A']++;
else if(input[j] >= 'a' && input[j] <= 'z')
alph[input[j] - 'a']++;
}
if(find(alph, alph+25, 0) == alph+25)
cout << "pangram\n";
else{
cout << "missing ";
for(int i = 0; i < 26; i++){
if(alph[i] == 0)
cout << char(i + 'a');
}
cout << "\n";
}
}
}
[결과 화면]
'YJ > C++' 카테고리의 다른 글
[백준/BOJ/C++] 11134번 쿠키 애호가 (0) | 2021.12.27 |
---|---|
[백준/BOJ/C++] 9946번 단어 퍼즐 (0) | 2021.12.27 |
[백준/BOJ/C++] 11104번 Fridge of Your Dreams (0) | 2021.12.27 |
[백준/BOJ/C++] 10864번 친구 (0) | 2021.12.27 |
[백준/BOJ/C++] 6321번 IBM 빼기 1 (0) | 2021.12.27 |