본문 바로가기
Develop/백준 (Cpp)

[백준] 10384번 : 팬그램 (C++)

by Tarra 2023. 2. 7.

10984번: 내 학점을 구해줘


문제 )

팬그램은 모든 알파벳을 적어도 한 번씩을 사용한 영어 문장을 말한다.

다음은 유명한 팬그램 중 하나이다.

The quick brown fox jumps over a lazy dog

더블 팬그램은 모든 알파벳을 적어도 두 번씩은 사용한 문장을 말하고,

트리플 팬그램은 모든 알파벳을 적어도 세 번씩은 사용한 문장을 말한다.

더 이어나갈 수도 있겠지만 시간상 여기까지만 하도록 하겠다.

 

 

입력 :

입력은 여러 줄의 테스트케이스들로 이루어진다.

첫째 줄에 테스트케이스의 수 n이 주어진다.

각 테스트케이스는 영어 소문자와 대문자, 특수기호들로 이루어진다.

 

 

 

출력 :

각 케이스마다 한 줄에 하나씩 다음 중 하나를 출력한다.

  • 팬그램이 아닐 경우 - Not a pangram
  • 팬그램일 경우 - Pangram!
  • 더블 팬그램일 경우 - Double pangram!!
  • 트리플 팬그램일 경우 - Triple pangram!!!

트리플 팬그램일 경우에는 자연스럽게 팬그램과 더블 팬그램이 되지만, Triple pangram!!!만을 출력한다. 더블 팬그램도 마찬가지이다.

 

 

 

 

 

풀이)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <string>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    cin.ignore();
    for (int a = 0; a < n; a++) {
 
        string sentence;
        getline(cin, sentence);
 
        int alpha[26]{ 0 };
 
        // 문장 전체를 소문자로 바꿔줌
        transform(sentence.begin(), sentence.end(), sentence.begin(), ::tolower);
 
        int sentence_len = sentence.length() + 1;
        for (int i = 0; i < sentence_len; i++) {
            int alpha_num = sentence[i] - 'a';
            if (alpha_num >= 0 && alpha_num <= 26) {
                alpha[alpha_num]++;
            }
        }
 
 
        // 배열 중 최소 값 찾기
        int min_num = 10;
        for (auto& ele : alpha) {
            min_num = min_num > ele ? ele : min_num;
        }
 
        cout << "Case " << a + 1 << ": ";
 
        if (min_num == 3) {
            cout << "Triple pangram!!!\n";
        }
        else if (min_num == 2) {
            cout << "Double pangram!!\n";
        }
        else if (min_num == 1) {
            cout << "Pangram!\n";
        }
        else {
            cout << "Not a pangram\n";
        }
    }
 
    return 0;
}
 
cs

출처 : https://www.acmicpc.net/problem/10384 

 

10384번: 팬그램

팬그램은 모든 알파벳을 적어도 한 번씩을 사용한 영어 문장을 말한다. 다음은 유명한 팬그램 중 하나이다. The quick brown fox jumps over a lazy dog 더블 팬그램은 모든 알파벳을 적어도 두 번씩은 사용

www.acmicpc.net