AtCoder

ABC367 B問題(Cut .0)を解く

AtCoder_ABC367_B

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

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

B問題 Cut .0(Difficulty : 43)

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

ABC367 B問題 Cut .0

与えられた実数を文字列として処理します。AtCoder Problems による Difficulty は 43 でした。

解答案

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

実数を文字列として処理します。具体的には、後ろから文字 ‘0’ を削除して、最後の文字が ‘.’ であれば、これも削除します。C++ の string は、vector コンテナのメソッドと同じ back、pop_back を使うことができます。

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

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

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

	while (s.back() == '0') {
		s.pop_back();
	}
	if (s.back() == '.') {
		s.pop_back();
	}

	cout << s << endl;

	return 0;
}

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

Python プログラム例(ABC367B)

Python でも、文字列をリストとして処理をします。最後に文字列として結合(join)します。以下がプログラムです。

"""AtCoder Beginner Contest 367 B"""
s = list(input())

while s[-1] == '0':
    s.pop()
if s[-1] == '.':
    s.pop()

print("".join(s))

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

最後に

このような問題は、文字列として処理した方が楽ですね。

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

COMMENT

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

CAPTCHA