AtCoder が提供しているABC(AtCoder Beginner Contest)391 A問題をC++とPythonで解いてみました。ABC391は、2025年2月1日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Lucky Direction(Difficulty : 10)
問題の詳細は、リンク先をご覧ください。
書き換える先の文字列を登録しました。AtCoder Problems による Difficulty は 10 でした。
解答案
C++ プログラム例(ABC391A)
mapコンテナを使用して、元の文字列と反対の方角を表す文字列を対応させました(10ー17行目)。最後に、対応する文字列を出力します(19行目)。
以下が、C++プログラムです。
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
map<string, string> result;
result["N"] = "S";
result["E"] = "W";
result["W"] = "E";
result["S"] = "N";
result["NE"] = "SW";
result["NW"] = "SE";
result["SE"] = "NW";
result["SW"] = "NE";
cout << result[s] << endl;
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC391A)
Python版も基本的な考え方は同じです。以下がプログラムです。
"""AtCoder Beginner Contest 391 A"""
s = input()
result = {}
result["N"] = "S"
result["E"] = "W"
result["W"] = "E"
result["S"] = "N"
result["NE"] = "SW"
result["NW"] = "SE"
result["SE"] = "NW"
result["SW"] = "NE"
print(result[s])
こちらも「AC」と判定されました。
最後に
なかなかレートは上がりませんが、ぼちぼちとプログラミングを楽しんでいます。
引き続き ABC の問題を紹介していきます。