코딩테스트/C
백준 1175번 단어공부
호중조
2024. 7. 6. 11:31
#include <stdio.h>
#include <string.h>
/*Define max legnth of input*/
#define MAX 1000001
#define CAPGAP 65
#define LOWGAP 97
#define LENALPHABET 26
int main(void)
{
/*Declare variables*/
char S[MAX];
int num[LENALPHABET]; /*Variable for counting*/
int len_S;
int i;
int ascii;
int maximum;
int maximum_idx;
int cnt;
char maximumAlphabet;
/*Initialize variables*/
cnt = 0;
maximum = 0;
for (i=LENALPHABET-1; i!=-1; i--)
{
num[i] = 0;
}
/*Get input*/
scanf("%[^\n]*c",&S);
len_S = strlen(S);
/*Count number of alphabet*/
for (i = len_S-1; i!=-1; i--)
{
ascii = (int)S[i];
if (ascii >= LOWGAP)
{
num[ascii-LOWGAP]++;
}
else
{
num[ascii-CAPGAP]++;
}
}
/*Calculate maximum number of alphabet and get index*/
for (i = (LENALPHABET-1); i != -1; i--)
{
if (maximum < num[i])
{
maximum = num[i];
maximum_idx = i;
}
else
{
}
}
/*Calculate number of maximum value*/
for (i = (LENALPHABET-1); i != -1; i--)
{
if (maximum == num[i])
{
cnt++;
}
}
/*Set value to print*/
if (cnt==1)
{
maximumAlphabet = (char)(maximum_idx + CAPGAP);
}
else
{
maximumAlphabet = '?';
}
printf("%c\n", maximumAlphabet);
}