AtCoder が提供しているABC(AtCoder Beginner Contest)284 のA問題をC++とPythonで解いてみました。ABC284は、2023年1月7日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Sequence of Strings(Difficulty : 10)
問題はリンク先をご覧ください。
ABC284 A問題 Sequence of Strings
与えられた文字列の組を逆順に出力する問題です。AtCoder Problems による Difficulty は、10 でした。
解答案
問題を解く方針を書きだします。
- N と N個の文字列 Si を読み込む。
- Si を1行毎に逆順に出力する。
C++ プログラム例(ABC284A)
方針に従いプログラムしました。for 文のループカウンタは、増やす場合が多いですが、今回は減らしています(13行目)。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
vector<string> s(n);
for (int i = 0; i < n; ++i) {
cin >> s[i];
}
for (int i = n - 1; i >= 0; --i) {
cout << s[i] << endl;
}
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC284A)
Python 版も C++ 版を移植しました。range 関数で第3引数を指定しています(5行目)。
"""AtCoder Beginner Contest 284 A"""
n = int(input())
s = [input() for i in range(n)]
for i in range(n - 1, -1, -1):
print(s[i])
Python のリストの添え字には、マイナスの値も使えます。-1 は、リストの最後の要素を表します。添え字にマイナスを使ったプログラムは、以下となります。
"""AtCoder Beginner Contest 284 A"""
n = int(input())
s = [input() for i in range(n)]
for i in range(n):
print(s[-(i + 1)])
どちらも「AC」と判定されました。
最後に
2023年最初の ABC 開催となりました。楽しむために今年も参加しようと考えています。
引き続き ABC の問題を紹介していきます。