본문 바로가기

알고리즘/백준

백준 1157 - 단어공부(브론즈1)

반응형

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

 

1157번: 단어 공부

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

www.acmicpc.net

<문제풀이>

카운트 배열을 이용하여 나온 갯수를 센 후 max값을 찾을 수 있는지를 체크하는 문제

 

#include <iostream>
#include <cstdio>
#include <cstring>
#include <ctype.h>

using namespace std;

char str[1000001];

int main()
{
    int cnt[26]={0};

    scanf("%s",str);
    int len = strlen(str);
    for(int i=0;i<len;i++)
    {
        cnt[toupper(str[i])-'A']++;
    }
    int maxcnt = 0;
    for(int i=0;i<26;i++)
    {
        if(maxcnt<cnt[i]) maxcnt=cnt[i];
    }
    int rescnt = 0;
    int resindex = -1;
    for(int i=0;i<26;i++)
    {
        if(maxcnt==cnt[i])
        {
            rescnt++;
            resindex = i;
        }
    }
    if(rescnt > 1) printf("?");
    else printf("%c",resindex + 'A');

    return 0;
}
반응형