습관처럼

백준 1157 - 단어 공부 본문

Algorithms/BOJ

백준 1157 - 단어 공부

dev.wookii 2020. 4. 8. 09:24

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

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

www.acmicpc.net

문제 설명


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

 

 

접근 방법


대문자 변환후 알파벳 26자에 해당하는 배열에 증가를 시켜준다.

Tip : (int)'A' >> A의 아스키 코드 숫자

 

 

코드


#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <cmath>
using namespace std;
string word;
int main(){
    cin>>word;
    int ac[26];
    int maxi=-1234,idx=0;
    memset(ac,0,sizeof(ac));
    for(int i=0;i<word.size();i++){
        if(word[i]=='\0')break;
        char a = toupper(word[i]);
        ac[int(a)-int('A')]++;
    }
    int flag=0;
    for(int i=0;i<26;i++){
        if(ac[i]==0) continue;
        else if(maxi<ac[i]){maxi=ac[i];idx=i;flag=1;}
        else if(maxi==ac[i]){
            flag=0;
        }
    }
    if(flag==1){cout<<char('A'+idx)<<"\n";}
    if(flag==0){cout<<"?"<<"\n";}
}

funny algorithm 0.0 ~

'Algorithms > BOJ' 카테고리의 다른 글

백준 1912 - 연속합  (0) 2020.04.08
백준 1932 - 정수 삼각형  (0) 2020.04.08
백준 2908 - 상수  (0) 2020.04.08
백준 10809 - 알파벳 찾기  (0) 2020.04.08
백준 11654 - 아스키 코드  (0) 2020.04.05