Please sign in first.
Official
A - アルファベット分類 / Alphabet Classification Editorial
by
A - アルファベット分類 / Alphabet Classification Editorial
by
physics0523
初心者の方へ
- AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
- また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
\(N\) 個の文字列を読み込み、頭文字が a, b, …, z であるものがいくつあるか数え、最大値を出力すればよいです。
バケットソート の要領で解くとよいです。例えば、以下のようにします。
- 長さ \(26\) の配列 \(A\) を用意する。最初、 \(A\) の要素は全て \(0\) です。
- \(i=1,2,\dots,N\) について、以下を繰り返す。
- \(S_i\) の頭文字を \(c\) とする。
- \(c\) が英小文字の \(k\) 番目である場合、 \(A[k]\) に \(1\) 加算する。
- \(A\) の最大値を出力する。
一連の流れは、 for 文等を用いて実現できます。
実装例 (C++):
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
cin >> N;
vector<int> bk(26,0);
for(int i=0;i<N;i++){
string S;
cin >> S;
bk[S[0]-'a']++;
}
cout << (*max_element(bk.begin(),bk.end())) << "\n";
return 0;
}
posted:
last update:
