AtCoder

ABC294 A問題(Filter)を解く

AtCoder_ABC294_A

AtCoder が提供しているABC(AtCoder Beginner Contest)294 のA問題をC++とPythonで解いてみました。ABC294は、2023年3月19日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

A問題 Filter(Difficulty : 8)

問題はリンク先をご覧ください。

ABC294 A問題 Filter

与えられた数列から偶数だけを抜き出す問題です。AtCoder Problems による Difficulty は 8 でした。

解答案

問題を以下の方針で解きます。

  • N と数列 A を読み込む。
  • 数列 A から偶数だけを配列 result に格納する。
  • 配列 result の要素をすべて出力する。

C++ プログラム例(ABC294A)

上で記述した方針に従います。

数列Aをすべて読み込み、配列 result に偶数だけ push_back します(16行目)。そのあと、配列 result の要素をすべて出力します。

以下が、C++プログラムとなります。

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n;
	cin >> n;
	vector<int> a(n);
	for (int i = 0; i < n; ++i) {
		cin >> a[i];
	}

	vector<int> result;
	for (int i = 0; i < n; ++i) {
		if (a[i] % 2 == 0) {
			result.push_back(a[i]);
		}
	}

	for (int i = 0; i < result.size(); ++i) {
		cout << result[i] << " \n"[i == result.size() - 1];
	}

	return 0;
}

AC(Accepted=正しいプログラム)と判定されました。

Python プログラム例(ABC294A)

Python は、リストの記述が豊富です。リストの内包記法で、result を定義します(4行目)。* を付けることにより、すべての要素を出力できます(5行目)。

"""AtCoder Beginner Contest 294 A"""
n = int(input())
a = list(map(int, input().split()))
result = [e for e in a if e % 2 == 0]
print(*result)

こちらも「AC」と判定されました。

最後に

A問題はいつも通り、解きやすい問題でした。

引き続き ABC の問題を紹介していきます。

COMMENT

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

CAPTCHA