AtCoder

ABC284 A問題(Sequence of Strings)を解く

AtCoder_ABC284_A

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 でした。ABC A問題として、標準的な問題です。

解答案

問題を解く方針を書きだします。

  • 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 開催となりました。楽しむために今年も参加しようと考えています。

ABC284 について、引き続き、E問題まで紹介します。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA