기타 알고리즘
팬그램
4gats
2023. 3. 5. 21:10
https://www.acmicpc.net/problem/5704
5704번: 팬그램
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 많아야 200글자로 이루어져 있는 문장이다. 단어는 공백 하나로 구분되어 있다. 또, 단어는 알파벳 소문자로만 이루어져 있다.
www.acmicpc.net
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
|
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
string a;
while (1)
{
int x[26];
for (int i = 0; i < 26; i++)
x[i] = 0;
getline(cin, a, '\n');
if (a == "*")
break;
for (int i = 0; i < a.size(); i++)
{
if (a[i] != ' ')
{
char k = a[i] - 97;
x[k] = 1;
}
}
bool check = true;
for (int i = 0; i < 26; i++)
{
if (x[i] != 1)
{
check = false;
break;
}
}
if (check)
cout << "Y" << '\n';
else
cout << "N" << '\n';
}
return 0;
}
|
cs |
cin.getline() -> char형
getline() -> string
getline은 공백이 포함된 문자열을 입력받기 편리
getline(string)을 사용하면 '\n'을 구분자로 사용하여 문자열을 입력받는다.
이후 '\n'를 버퍼에서 지운다. 즉, '\n'를 받아들인다.
이와 반대로 cin은 '\n', '띄어쓰기', 'tab'를 구분자로 사용하며 버퍼를 지우지 않기 때문에,
cin 이후 getline을 사용한다면 cin,ignore()과 같은 함수를 사용하여 버퍼를 비워주어야된다.
(아니면 엔터를 입력값으로 받는다.)
cin만을 사용한다면, cin에 공백 무시 함수가 구현되어있기 때문에,
버퍼에 공백이 남아있더라도, 무시하고 입력받는다.