별의 공부 블로그 🧑🏻‍💻
728x90
728x170

문제

"The quick brown fox jumped over the lazy dogs."

이 문장은 모든 모든 알파벳이 적어도 한 번은 나오는 문장으로 유명하다.즉 26개의 서로 다른 문자를 갖고 있는 것이다.

각 케이스마다 문장에서 공백, 숫자, 특수 문자를 제외하고 얼마나 다양한 알파벳이 나왔는지를 구하면 된다. 대소문자는 하나의 문자로 처리한다. ex) 'A' == 'a'

 

 

입력

입력은 250자를 넘지 않는 문장이 주어진다.

각 문장은 적어도 하나의 공백이 아닌 문자를 포함한다. (알파벳이 아닐 수 있다)

마지막 줄에는 '#'이 주어진다.

 

 

출력

각 줄마다 출몰한 알파벳의 개수를 출력하면 된다.

 

 

제 입력

 The quick brown fox jumped over the lazy dogs.

 2 + 2 = 4

 New Zealand Programming Contest.

 #

 

예제 출력

 26

 0

 16

 

 

힌트

 

 

출처

ACM-ICPC > Regionals > South Pacific > South Pacific Region > New Zealand Programming Contest > NZPC 2008 F번

· 문제를 번역한 사람: busyhuman

 

 

코드

 

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
#include <iostream>
#include <cstring>    // strlen()
 
#define N 252    // 줄바꿈 문자를 생각해서 길이를 크게 잡아줘야 함.
 
using namespace std;
 
int main()
{
    int len, sum = 0, cnt = 0, isChecked = 0;
    char ary[N];
 
    while (1) {
        cin.getline(ary, N);
        len = strlen(ary);
 
        if (ary[0== '#') {
            return 0;
        }
        
        for (int i = 65; i <= 90; i++) {
            for (int j = 0; j < len; j++) {
                if ((ary[j] == i) || (ary[j] == i + 32)) {
                    if (isChecked == 0) {
                        cnt++;
                        isChecked = 1;
                    }
                }
            }
            isChecked = 0;
            sum += cnt;
            cnt = 0;
        }
        cout << sum << endl;
        sum = 0;
    }
 
    return 0;
}
cs

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖