【競技プログラミング講座始めました】AtCoder Beginner Contest 001-A積雪深差【C++解説】
mintson
【公式】夜猫ミントのブログ
文字列 S には E と W だけが含まれます。
E の個数 = 東軍の人数W の個数 = 西軍の人数東軍のほうが多ければ East、西軍のほうが多ければ West を出力します。
(文字列の長さは奇数なので、同数になることはありません)
→ https://atcoder.jp/contests/abc464/tasks/abc464_a
解説動画はYouTubeに投稿してあります!
E の数だけ数えれば十分です。
n は奇数なので、eastの総数 > n/2 なら東軍が多い(整数除算でOK)つまり、
east > n/2 → EastWest#include <iostream>
#include <string>
using namespace std;
int main(){
string S;
cin >> S;
int east = 0;
for(char c : S){
if(c == 'E') east++;
}
if(east > (int)S.length() / 2) cout << "East";
else cout << "West";
return 0;
}
for (char c : S) で1文字ずつ見て、c == 'E' のときだけカウントしますS.length()/2 は整数除算なので、奇数長のとき「半分より大きいか」の判定にそのまま使えます