AtCoder

ABC293 A問題(Swap Odd and Even)を解く

AtCoder_ABC293_A

AtCoder が提供しているABC(AtCoder Beginner Contest)293 のA問題をC++とPythonで解いてみました。ABC293は、2023年3月11日21:00に実施されました。

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

A問題 Swap Odd and Even(Difficulty : 12)

問題はリンク先をご覧ください。

ABC293 A問題 Swap Odd and Even

与えられた文字列の文字を指定されたように入れ替える問題です。AtCoder Problems による Difficulty は 12 でした。

解答案

問題を以下の方針で解きます。

  • 文字列 S を読み込む。
  • 文字列 S の先頭文字から2文字毎に以下を繰り返す。ループ変数は1ループで2増やす。
    • S[i + 1] と S[i] を出力する。

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

2文字毎にループして、直接、目的とする文字を出力しました。

以下が、C++プログラムとなります。

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

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

	for (int i = 0; i < s.length(); i += 2) {
		cout << s[i + 1] << s[i];
	}
	cout << endl;

	return 0;
}

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

Python プログラム例(ABC293A)

Python は、文字列オブジェクトを書き換えることができません。別の文字列 t を定義して、そこに文字を足していきました。最後に文字列 t を出力しました。

"""AtCoder Beginner Contest 293 A"""
s = input()
t = ""
for i in range(0, len(s), 2):
    t = t + s[i + 1] + s[i]
print(t)

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

最後に

3回続けて文字列に関するA問題が出題されました。文字列は、競技プログラミングではよく使われるオブジェクトです。問題を解くことで慣れていきたいです。

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

COMMENT

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

CAPTCHA