문제 링크


🔷 분류

구현, 문자열

✒️ 문제 설명

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

⬅️ 입력

첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.

➡️ 출력

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

💻 코드 (C++)

#include <iostream>
#include <string>
#include <cctype>
using namespace std;

int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);

  string s;
  cin >> s;

  int arr[26] = {};
  for (char ch : s) {
    ch = toupper(ch);  
    arr[ch - 'A']++;
  }

  int mx = 0;
  char ans = '?';
  bool same = false;

  for (int i = 0; i < 26; ++i) {
    if (arr[i] > mx) {
      mx = arr[i];
      ans = i + 'A'; 
      same = false;
    } else if (arr[i] == mx && mx != 0) {
      same = true;
    }
  }

  cout << (same ? '?' : ans);
  return 0;
}

글 이동

Comments