알고리즘/백준(BOJ)

백준 - 1157 단어 공부

시나모온 2020. 8. 28. 16:42

문제 링크입니다 : https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

문자열

 

 

 

 

 

 

 

#include <iostream>
#include <vector>
#include <cctype>

using namespace std;

int main() {
    string str;
    cin >> str;

    vector<int> alphaCnt(26, 0);
    
    for(int i = 0; i < str.size(); i++) {
        if(isupper(str[i])) {
            alphaCnt[str[i] - 'A']++;
        } else {
            alphaCnt[str[i] - 'a']++;
        }
    }

    int maxValue = 0;
    bool isDouble = true;
    int maxIndex = -1;
    for(int i = 0; i < 26; i++) {
        if(alphaCnt[i] > maxValue) {
            isDouble = false;
            maxIndex = i;
            maxValue = alphaCnt[i];
        } else if(alphaCnt[i] == maxValue) {
            isDouble = true;
        }
    }

    if(isDouble) {
        cout << '?';
    } else {
        cout << char(maxIndex + 'A');
    }

    return 0;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~