fork download
  1. #include<stdio.h>
  2. #include<string.h>
  3. #define NUM 1000000
  4.  
  5. char word[NUM + 1] = { '\0' };
  6.  
  7. int main()
  8. {
  9. int i, length, max, max_used, question = 1;
  10. char alphabet[27] = { 0, };
  11.  
  12. scanf("%s", word, NUM + 1);
  13.  
  14. length = strlen(word);
  15.  
  16. for (i = 0; i < length; i++)
  17. {
  18. if (word[i] < 91) //알파벳이 대문자, 'A' = 65
  19. alphabet[word[i] - 'A']++;
  20. else//알파벳이 소문자, 'a' = 97
  21. {
  22. alphabet[word[i] - 'a']++;
  23. }
  24. }
  25.  
  26. max = alphabet[0];
  27. max_used = 0;
  28.  
  29. /*max에 가장 많이 사용된 알파벳의 사용 횟수 저장.
  30. max와 같은 값이 나오면 question의 값을 바꿈, max값이 갱신되면 초기화.
  31. question의 값이 마지막에 바뀌어있으면 ? 출력, 그대로면 알파벳 출력.
  32. */
  33. //max_used는 가장 많이 쓰인 알파벳의 인덱스 값 지정, 나중에 + 'A' 해서 출력.
  34.  
  35. for (i = 1; i < 26; i++)
  36. {
  37. if (alphabet[i] > max)
  38. {
  39. max = alphabet[i];
  40. question = 1;
  41. max_used = i;
  42. }
  43. else if (alphabet[i] == max)
  44. {
  45. question = 0;
  46. }
  47. }
  48.  
  49. if (!question)
  50. {
  51. printf("?");
  52. }
  53. else
  54. printf("%c", max_used + 'A');
  55. }
Success #stdin #stdout 0s 4956KB
stdin
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
stdout
B