AtCoder

ABC275 A問題(Find Takahashi)を解く

AtCoder_ABC275_A

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

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

A問題 Find Takahashi(Difficulty : 14)

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

ABC275 A問題 Find Takahashi

最大値を持つ数字のインデックスを求める問題です。AtCoder Problems による Difficulty は、14 でした。ABC A問題として、標準的な問題です。

解答案

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

  • 最大値の仮の値と、最大値があるインデックスの仮の値を用意する。
  • 整数の列を読み込み、より大きな値であれば、最大値と最大値のインデックスを更新する。
  • 最後に、最大値があるインデックスを出力する。

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

書きだした方針をプログラムするだけです。以下が、解答例です。

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

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

	int max_h = 0;
	int max_no = -1;
	for (int i = 0; i < n; ++i) {
		int h;
		cin >> h;
		if (h > max_h) {
			max_h = h;
			max_no = i + 1;
		}
	}

	cout << max_no << endl;

	return 0;
}

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

Python プログラム例(ABC275A)

Python では、配列を一気に読みます。素朴な書き方をしたため、Python らしい書き方になっていないかもしれません。

"""AtCoder Beginner Contest 275 A"""
n = int(input())
h = list(map(int, input().split()))
max_h = 0
max_no = -1
for i in range(n):
    if h[i] > max_h:
        max_h = h[i]
        max_no = i + 1
print(max_no)

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

最後に

A問題も、手早く解くことによってレートは上がっていくようです。また、まだ Python に慣れていないわたしには、ちょうどよい演習になっています

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

COMMENT

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

CAPTCHA