Rst

[백준 1157번 단어공부] C++ 풀이

/Algorithm /BOJ

문제

문제 링크
알파벳 대,소문자로 이루어진 문자열을 입력받아 가장 많이 등장한 알파벳을 출력한다. 이때 대문자와 소문자는 구분하지 않고 개수를 센다.

조건

제한시간: 2초
입력 문자열 길이: 1,000,000이하
가장 많이 사용된 알파벳이 여러개일 경우 ‘?’를 출력한다.

풀이과정

코드

#include <iostream>
#include <string>
using namespace std;
int count[26] = {0};
int main(){
    string str;
    cin >> str;
    
    int c;
    for(int i=str.length()-1; i >= 0; i--){
        c = str[i]-65;
        if(c > 25) c-=32;
        count[c]++;
    }
    
    int max = count[0];
    c=0;
    for(int i=1; i < 26; i++){
        if(max == count[i]){ c = ('?'-65); continue;}
        if(max < count[i]){ max = count[i]; c = i;}
    }
    
    cout << (char)(c+65);
}
comments powered by Disqus