알파벳 등장 유무를 관리하기 위해 map 자료 구조를 이용하여 알파벳을 key로, 등장 유무를 value로 관리하였습니다.
시작할때 map의 A~Z까지의 key에 대한 value를 false로 삽입하였습니다.
그리고 제목을 입력받으며 첫글자를 key 값으로 가지는 value를 true로 변경하였습니다.
입력이 끝난 후 map을 돌며 value가 true인 경우 result를 증가시키고, false인 경우 그 뒤의 알파벳은 사용하지 않으므로 result를 리턴하였습니다.
#include <iostream>
#include <map>
using namespace std;
char alphabetIdx[26] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
map<char, bool> alphabets;
int getResult() {
int result = 0;
for(auto iter = alphabets.begin(); iter != alphabets.end(); iter++) {
if(iter->second == false) {
break;
}
result++;
}
return result;
}
void setAlphabetsMap() {
alphabets.clear();
for(int i=0; i<26; i++) {
alphabets[alphabetIdx[i]] = false;
}
}
int main() {
cin.tie(0); cout.tie(0);
ios::sync_with_stdio(0);
int tc; cin >> tc;
for(int t=1; t<=tc; t++) {
setAlphabetsMap();
int wc; cin >> wc;
for(int i=0; i<wc; i++) {
string input; cin >> input;
alphabets[input[0]] = true;
}
cout << '#' << t << ' ' << getResult() << '\n';
}
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] 8673. 코딩 토너먼트1 (0) | 2020.03.17 |
---|---|
[SWEA] 1220. [S/W 문제해결 기본] 5일차 - Magnetic (0) | 2020.02.24 |
[SWEA] 9317. 석찬이의 받아쓰기 (0) | 2020.02.20 |
[SWEA] 8457. 알 덴테 스파게티 (0) | 2020.02.17 |
[SWEA] 8888. 시험 (0) | 2020.02.16 |
댓글