AtCoder

ABC382 B問題(Daily Cookie 2)を解く

AtCoder_ABC382_B

AtCoder が提供しているABC(AtCoder Beginner Contest)382 B問題をC++とPythonで解いてみました。ABC382は、2024年11月30日21:00に実施されました。

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

B問題 Daily Cookie 2(Difficulty : 24)

問題の詳細は、リンク先をご覧ください。

ABC382 B問題 Daily Cookie 2

文字列の後ろから処理します。AtCoder Problems による Difficulty は 24 でした。

解答案

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

文字列の後ろから $D$ 個のクッキー(文字 ‘@’)を空き箱(文字 ‘.’)に変更します。変更後の文字列を出力します。

以下が、C++プログラムです。

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

int main()
{
	int n, d;
	cin >> n >> d;
	string s;
	cin >> s;

	for (int i = n - 1; i >= 0; --i) {
		if (s[i] == '@') {
			s[i] = '.';
			--d;
			if (d == 0) {
				break;
			}
		}
	}

	cout << s << endl;

	return 0;
}

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

Python プログラム例(ABC382B)

基本的な考え方は同じです。Python では文字列を直接変更できないため、リストとして扱い、join メソッドを使用します(3、12行目)。以下がプログラムです。

"""AtCoder Beginner Contest 382 B"""
n, d = map(int, input().split())
s = list(input())

for i in range(n - 1, -1, -1):
    if s[i] == '@':
        s[i] = '.'
        d -= 1
        if d == 0:
            break

print("".join(s))

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

最後に

この問題は、A問題と似た設定の問題でした。

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

COMMENT

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

CAPTCHA