1157 단어 공부 C++

ay.zip·2022년 3월 6일
0

문제풀이

목록 보기
13/18

1157 단어 공부

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

내가 선택한 접근 방식은

(1) alpha[26] 배열을 만들고 0으로 기본 값 셋팅
(2) 그리고 알파벳이 나올 때마다 +1 해주기
(3) 가장 높은 값을 대문자로 리턴하기 -> 혹시 가장 높은 값이 여러개라면 ? 로 나타내기

#include <iostream>
using namespace std;

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

    int alpha[26]={0};

    for(int i=0;i<str.length();i++){
        str[i]=toupper(str[i]);
    }
    
    for(int i=0;i<str.length();i++){
        int index = str[i]-'A';
        alpha[index]+=1;
    }

    int maxValue = 0;
    for(int i=0;i<26;i++){
        maxValue= max(maxValue,alpha[i]);
    }

    int count = 0;
    int idx = 0;
    for(int i=0;i<26;i++){
        if(alpha[i]==maxValue){
            count+=1;
            idx = i;
        }
    }

    if(count==1){
        char ch = (char)(idx+'A');
        cout<<ch;
    }else{
        cout<<'?';
    }
}

0개의 댓글