AtCoder が提供しているABC(AtCoder Beginner Contest)315 のA問題をC++とPythonで解いてみました。ABC315は、2023年8月19日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 tcdr(Difficulty : 12)
問題はリンク先をご覧ください。
与えられた文字列から特定の文字を抜く問題です。AtCoder Problems による Difficulty は 12 でした。
問題名の「tcdr」は、「atcoder」から母音を抜いた文字になっています。
解答案
C++ プログラム例(ABC315A)
文字列を読み込み、a、e、i、o、u 以外の文字を出力します。1文字毎に判断して出力するだけです(9ー12行目)。
以下が、C++プログラムとなります。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
for (int i = 0; i < s.length(); ++i) {
if ((s[i] != 'a')&&(s[i] != 'e')&&(s[i] != 'i')
&&(s[i] != 'o')&&(s[i] != 'u')) {
cout << s[i];
}
}
cout << endl;
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC315A)
Python では、判定する文字を文字列にまとめて in 演算子で判断しました(6行目)。全体のループで、enumerate を使っているのは、pylint の警告C0200を参考にこの書き方を採用しているためです(5行目)。
"""AtCoder Beginner Contest 315 A"""
s = input()
result = ""
for _, ch in enumerate(s):
if ch not in "aeiou":
result += ch
print(result)
こちらも「AC」と判定されました。
最後に
この回では、ABCEの4問を解くことができてレートの Highest を更新しました(とはいってもレート901ですが)。向上具合がレートという数字で見えるため、少しでも上がるとうれしくなります。
引き続き ABC の問題を紹介していきます。