전체적으로 기능이 동작되는 듯 했으나..
몇가지 문제로 계속 틀린 결과나 시간 초과를 반복한 문제이다.
문제들 (str의 크기를 너무 크게 잡아 스택을 초과하는 문제는 VS에서만 발생하므로 제외시켰다)
strlen으로 조건을 비교하게 되면 문자열의 크기만큼 전체 수행 시간에 곱해질 수 밖에 없다. 따라서 이 경우에는 수행시간 * 1000001 ;;;; 시간 초과가 안나는 게 이상하다
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
char str[1000001] = "";
int alpha[26] = { 0, };
char most_used;
char overlap_val = 0;
while (scanf("%s", str) != 1) continue;
int len = strlen(str);
for (int k = 0; k < len; k++)
{
if (str[k] > 'Z')
str[k] -= ('a' - 'A');
for (char i = 0; i < 26; i++)
{
if (str[k] == i + 'A')
{
alpha[i]++;
}
}
}
most_used = 0;
for (int i = 1; i < 26; i++)
{
if (alpha[i] > alpha[most_used])
{
overlap_val = 0;
most_used = i;
}
else if (alpha[i] == alpha[most_used])
{
overlap_val = 1;
}
}
if (overlap_val == 1)
printf("?");
else
printf("%c", most_used + 'A');
}