制約が小さいので for
文だけでも解けるし、map
などを使うともっと楽になる。
問題概要
個の文字列 が与えられる。
登場回数の最も多い文字列を答えよ(タイがある場合はどれを答えても良い)。
制約
考えたこと
次の連想配列を用いて解いた
map<string, int>型変数
nums`
nums[str]
:文字列 str
が何個あるか
コード
#include <bits/stdc++.h> using namespace std; int main() { int N; string S; cin >> N; // 連想配列 num map<string, int> nums; for (int i = 0; i < N; i++) { cin >> S; nums[S]++; } // 最大個数を求める int max_num = 0; string res; for (auto [str, num] : nums) { if (max_num < num) { max_num = num; res = str; } } cout << res << endl; }