728x90
문제 1159번
https://www.acmicpc.net/problem/1159
입력받은 이름의 첫글자에 해당하는 인덱스를 check 배열에서 1증가시켜준다. 여기서 알파벳에 'a'를 빼주면 해당 글자의 인덱스가 나오게 된다. 즉, 첫 글자가 a라면 'a'를 뺏을 때 0이 나온다.
그렇게 첫 글자의 개수를 다 세면 5이상인 글자가 있는지 확인하여 참가할 수 있다는 표시로 predaja에 false를 해준다. 그리고 모든 알파벳(사전순이기 때문에 a~z순으로)이 저장된 s에 해당 인덱스에 있는 알파벳을 출력해준다.
만약 5이상인 수가 없어서 predaja를 해야한다면(predaja가 true인 경우) PREDAJA를 출력한다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "abcdefghijklmnopqrstuvwxyz";
int check[26] = {}; //알파벳 26개
int N;
bool predaja = true;
cin >> N;
for (int i = 0; i < N; i++) {
string a;
cin >> a;
//이름 첫글자에 a를 빼면 인덱스가 나옴 해당 인덱스에 1증가
check[a[0] - 'a']++;
}
for (int i = 0; i < 26; i++) {
if (check[i] >= 5) {
predaja = false;
cout << s[i];
}
}
if (predaja) {
cout << "PREDAJA";
}
return 0;
}
728x90
'백준 > C++' 카테고리의 다른 글
[C++] 백준 1032번 - 명령 프롬프트 (0) | 2024.04.03 |
---|---|
[C++] 백준 1259번 - 팰린드롬수 (0) | 2024.04.02 |
[C++] 백준 1152번 - 단어의 개수 (0) | 2024.03.31 |
[C++] 백준 3052번 - 나머지 && 백준 11720번 - 숫자의 합 (0) | 2024.03.30 |
[C++] 백준 2577번 - 숫자의 개수 (0) | 2024.03.30 |