본문 바로가기
알고리즘/SWEA

[SWEA] 7087. 문제 제목 붙이기

by hyerann 2020. 3. 19.

알파벳 등장 유무를 관리하기 위해 map 자료 구조를 이용하여 알파벳을 key로, 등장 유무를 value로 관리하였습니다.

시작할때 map의 A~Z까지의 key에 대한 value를 false로 삽입하였습니다.

그리고 제목을 입력받으며 첫글자를 key 값으로 가지는 value를 true로 변경하였습니다.

입력이 끝난 후 map을 돌며 value가 true인 경우 result를 증가시키고, false인 경우 그 뒤의 알파벳은 사용하지 않으므로 result를 리턴하였습니다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWkIdD46A5EDFAXC&categoryId=AWkIdD46A5EDFAXC&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

#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';
    }
}

댓글