AtCoder

ABC288 B問題(Qualification Contest)を解く

AtCoder_ABC288_B

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

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

B問題 Qualification Contest(Difficulty : 44)

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

ABC288 B問題 Qualification Contest

読み込んだ一部の文字列をソートします。AtCoder Problems による Difficulty は 44 でした。

解答案

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

  • N と K を読み込む。
  • N 回以下を行う。
    • 文字列 temp を読み込む。
    • 読み込んだ回数が K 回以下なら、配列(リスト)に登録する。
  • 配列(リスト)をソートする。
  • ソート順に文字列を出力する。

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

読み込んだ回数が K 回以下なら、読み込んだ文字列を vector コンテナ s に登録(push_bask)します。s をソートして、表示するだけです。以下が C++ プログラムとなります。

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

int main()
{
	int n, k;
	cin >> n >> k;
	vector<string> s;
	for (int i = 0; i < n; ++i) {
		string temp;
		cin >> temp;
		if (i < k) {
			s.push_back(temp);
		}
	}
	sort(s.begin(), s.end());

	for (auto e : s) {
		cout << e << endl;
	}

	return 0;
}

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

Python プログラム例(ABC288B)

Python では、リストを使います。読み込んだ回数が K 回以下なら、読み込んだ文字列を リスト s に登録(append)します。s をソートして、表示します。

"""AtCoder Beginner Contest 288 B"""
n, k = map(int, input().split())
s = []
for i in range(n):
    temp = input()
    if i < k:
        s.append(temp)
s.sort()
print(*s, sep='\n')

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

最後に

配列(リスト)の使い方が分かれば、それほど難しくない問題でした。

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

COMMENT

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

CAPTCHA