본문 바로가기
백준 알고리즘 코딩

[C언어] 백준 1371번 가장 많은 글자

by 1005_ 2025. 3. 27.

[ 문제 ]

영어에서는 어떤 글자가 다른 글자보다 많이 쓰인다. 예를 들어, 긴 글에서 약 12.31% 글자는 e이다.

어떤 글이 주어졌을 때, 가장 많이 나온 글자를 출력하는 프로그램을 작성하시오.

[ 입력 ]

첫째 줄부터 글이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 글에 알파벳은 적어도 하나 이상 있다.

[ 출력 ]

첫째 줄에 가장 많이 나온 문자를 출력한다. 여러 개일 경우에는 알파벳 순으로 앞서는 것부터 모두 공백없이 출력한다.

[ 작성한 코드 ]

#include <stdio.h>

int main()
{
    char s[52];
    int alpha[26] = {0};
    int i;

    while(fgets(s, sizeof(s), stdin))
    {
        for(i = 0; s[i]; i++)
        {
            if('a' <= s[i] && s[i] << 'z')
            {
                alpha[s[i] - 'a']++;
            }
        }

        int max = 0;

        for(i = 0; i < 26; i++) //최댓값 판별별
        {
            if(alpha[i] > max)
            {
                max = alpha[i];
            }
        }

        for(i = 0; i < 26; i++)
        {
            if(alpha[i] = max)
            {
                printf("%c",'a' + i);
            }
        }
    }
}

 

코드 설명 추가 예정

알고리즘 분류

  • 구현
  • 문자열