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 の問題を紹介していきます。