AtCoder が提供しているABC(AtCoder Beginner Contest)344 のA問題をC++とPythonで解いてみました。ABC344は、2024年3月9日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Spoiler(Difficulty : 20)
問題はリンク先をご覧ください。
指定された文字に囲まれた文字を特定して処理します。AtCoder Problems による Difficulty は 20 でした。
解答案
C++ プログラム例(ABC344A)
文字 ’|’ に囲まれているか判定する Bool 型変数 in を更新しながら文字を走査します。出力する文字を変数 result に追加していき、最後に result を出力します。
以下が、C++プログラムとなります。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
string result = "";
bool in = false;
for (int i = 0; i < s.length(); ++i) {
if (!in &&(s[i] != '|')) {
result += s[i];
}
if (s[i] == '|') {
in = !in;
}
}
cout << result << endl;
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC344A)
Python は、split で文字列を分けると以下のようにすっきりと書けます。
"""AtCoder Beginner Contest 344 A"""
s = input().split('|')
print(s[0] + s[2])
こちらも「AC」と判定されました。
最後に
A問題も少し工夫が必要な問題が続いています。
引き続き ABC の問題を紹介していきます。