AtCoder

ABC386 B問題(Calculator)を解く

AtCoder_ABC386_B

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

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

B問題 Calculator(Difficulty : 42)

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

ABC386 B問題 Calculator

文字列 “00” を別の1文字に置換します。AtCoder Problems による Difficulty は 42 でした。

解答案

ABC283C問題解説記事)とほぼ同じ問題です。

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

文字列 “00” を1文字(この例では ‘a’)に置換します。置換後の文字列の長さが解答となります。文字列の置換は、regex_replace を使いました。

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

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

int main()
{
	string s;
	cin >> s;

	string t = regex_replace(s, regex("00"), "a");

	cout << t.length() << endl;

	return 0;
}

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

Python プログラム例(ABC386B)

Python版も基本的な考え方は同じです。文字列の置換は、文字列クラスの replace メソッドを使いました。以下がプログラムです。

"""AtCoder Beginner Contest 386 B"""
s = input()

t = s.replace("00", "a")

print(len(t))

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

最後に

正規表現による文字列の置換は、ABC286B問題解説記事)やABC297C問題解説記事)でも利用しました。繰り返し使用することで、慣れてきます。

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

COMMENT

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

CAPTCHA