AtCoder が提供しているABC(AtCoder Beginner Contest)272 のA問題をC++とPythonで解いてみました。ABC272は、2022年10月8日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Integer Sum(Difficulty : 8)
問題はリンク先をご覧ください。
整数の列を読んで和を求めるだけです。AtCoder Problems による Difficulty は、8 でした。
解答案
問題を解く方針を書きだします。言語によって2つに分かれます。
- 整数を読み込みながら、合計を求める。
もしくは、
- 整数をすべて読み込んでから、合計を求める。
C++ では、前者で、Python では、後者で解いてみました。
C++ プログラム例(ABC272A)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int sum = 0;
for (int i = 0; i< n; ++i) {
int a;
cin >> a;
sum += a;
}
cout << sum << endl;
return 0;
}
整数の個数 N を読み、N 個の整数を読みながら合計 sum を求めています。AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC272A)
Python では、一気に整数を読んでいます。N は読む必要はなく、変数に代入しているだけです。
"""AtCoder Beginner Contest 272 A"""
n = int(input())
a = list(map(int, input().split()))
print(sum(a))
Python 版も「AC」と判定されました。
2022年11月28日 最後の出力で、不必要な str 呼び出しをしていたことを削除しました。
最後に
整数の数 N と N 個の整数を読む問題で、基本的な問題です。今回は、A問題からC問題までは、解きやすい難易度でした。
引き続き ABC の問題を紹介していきます。
2023/5/2追記 この回から、A問題にもループが出題されるようになりました。
補足: これまで ABC の A 問題ではループを使わず解けるような問題を出題してきましたが、毎週出題し続けるには扱える問題の幅が狭すぎ、ループを避けるためにかえってアクロバティックなことを要求する状態になっていることから、簡単な場合でループを出題してみることにしました。
https://atcoder.jp/contests/abc272/editorial/4977