AtCoder

ABC277 A問題(^{-1})を解く

AtCoder_ABC277_A

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

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

A問題 ^{-1}(Difficulty : 11)

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

ABC277 A問題 ^{-1}

条件を満たす配列のインデックスを求める問題です。AtCoder Problems による Difficulty は、11 でした。

「^{-1}」は、-1乗を表しています。逆引きを意味していると思います。

解答案

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

  • 数列を読み込む。
  • 与えられた数字と等しい数字を数列から見つける。
  • そのインデックスを出力する。

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

数列を読みながら判断もできますが、今回はすべて vector コンテナ p に読み込みました。配列(vector コンテナ)の添え字は、0 から始まりますが、問題は、添え字を1から始めているため、1を加えて出力しています。

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

int main()
{
	int n, x;
	cin >> n >> x;

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

	for (int i = 0; i < n; ++i){
		if (p[i] == x) {
			cout << i + 1 << endl;
		}
	}

	return 0;
}

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

Python プログラム例(ABC277A)

Python 版として、C++ 版を書き換えました。

"""AtCoder Beginner Contest 277 A"""
n, x = map(int, input().split())
p = list(map(int, input().split()))
for i in range(n):
    if p[i] == x:
        print(i + 1)

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

最後に

A問題については、内容は簡単ですが、Python のコーディング量を増やすために、解説を記事にしていきます。

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

COMMENT

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

CAPTCHA