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」と判定されました。

    最後に

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

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

    COMMENT

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

    CAPTCHA