AtCoder

ABC284 B問題(Multi Test Cases)を解く

AtCoder_ABC284_B

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

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

B問題 Multi Test Cases(Difficulty : 14)

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

ABC284 B問題 Multi Test Cases

与えられた数列の奇数の個数を求める問題です。AtCoder Problems による Difficulty は、14 でした。

解答案

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

  • テストケースの数 T を読み込む。
  • 以下を T 回繰り返す。
    • N と数列 Ai を読み込む。
    • Ai に含まれる奇数の数を出力する。

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

方針に従いプログラムしました。数列を読みながら、奇数の数をカウントしました。

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

int main()
{
	int t;
	cin >> t;

	for (int i = 0; i < t; ++i) {
		int n;
		cin >> n;
		int result = 0;
		for (int j = 0; j < n; ++j) {
			int a;
			cin >> a;
			if (a % 2 == 1) {
				++result;
			}
		}
		cout << result << endl;
	}

	return 0;
}

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

Python プログラム例(ABC284B)

Python では、リストの内包表記を使いました。奇数だけのリストを生成して、リスト要素の個数をカウントしました(6行目)。

"""AtCoder Beginner Contest 284 B"""
t = int(input())
for i in range(t):
    n = int(input())
    a = list(map(int, input().split()))
    print(len([i for i in a if i % 2 == 1]))

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

最後に

テストケースを複数与える問題は、B問題では見たことがありませんでした。この影響か、ひとつひとつのテストケースで行う処理は簡単なものになっていました。

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

COMMENT

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

CAPTCHA