AIZU ONLINE JUDGE

AOJ ITP1 9_C(Card Game)を解く

AOJ_ITP1_9_C

Aizu Online Judge(AOJ)が提供している「プログラミング入門」(ITP1)の9_C問題をC++とPython で解いてみました。

ITP1 のトピック9では、文字列について学びます。「文字列処理の基礎を学習します。」とあります。この学習コースを通じて、Python に慣れていきたいと考えています。

問題(9_C: Card Game)

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

AOJ ITP1 9_C問題:Card Game

文字列の(辞書順の)比較を行い問題を解きます。

解答案

C++ プログラム例(ITP1 9_C)

比較演算子で文字列を辞書順で比較できます。あとは、問題文に記述されているカードゲームのルールをプログラムとして実装するだけです。

#include <iostream>
#include <string>

using namespace std;

int main()
{
	int n;
	cin >> n;
	int taro = 0;
	int hanako = 0;

	for (int i = 0; i < n; ++i) {
		string s1, s2;
		cin >> s1 >> s2;
		if (s1 > s2) {
			taro += 3;
		} else if (s1 < s2) {
			hanako += 3;
		} else {
			taro += 1;
			hanako += 1;
		}
	}

	cout << taro << " " << hanako << endl;

	return 0;
}

Python プログラム例(ITP1 9_C)

Python も比較演算子で文字列を比較できます。C++ をそのまま移植しました。

n = int(input())
taro = 0
hanako = 0
for i in range(n):
    s1, s2 = input().split()
    if s1 > s2:
        taro += 3
    elif s1 < s2:
        hanako += 3
    else:
        taro += 1
        hanako += 1

print(taro, hanako)

上記プログラムは、すべて AOJ で「AC(Accepted=正解)」と判定されます。

最後に

C++ の string クラス、Python の文字列は、+演算子で文字列の連結ができたり、比較演算子で辞書順で比較ができます。これのより、文字列の処理を簡潔に書くことができています。

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

COMMENT

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

CAPTCHA