pandasでpaiza問題(スキルチェック見本問題セット:じゃんけんの手の出し方)

スポンサーリンク

paizaへのリンク(スキルチェック見本問題セット:じゃんけんの手の出し方 (paizaランク A 相当)

pandasを使って計算結果をDataFrameに残す方法を考えたが、網羅的にやるとタイムアウトしそうなので断念した。普通の解法のみ掲載する。苦戦したので、検索して出てきた解法を参考にさせてもらった。私のような初心者は自力で考え続けるよりも、ある程度で見切りをつけて優秀な人のプログラムを見た方が学習効率が良いと思う。「最大勝数を考える」、「手の組み合わせから成立するものを絞る」という流れでプログラムを組んでいる。

n, m = [int(_) for _ in input().split()]
s = input()

max_G_win = s.count('C')
max_C_win = s.count('P')
max_P_win = s.count('G')
max_win = 0
max_P = m // 5

for num_P in range(max_P + 1):
    for num_C in range(n - num_P + 1):
        counter = num_P * 5 + num_C * 2
        if counter == m:
            tmp_win = min(num_C, max_C_win) + min(num_P, max_P_win) + \
                      min((n - num_C - num_P), max_G_win)
            if tmp_win > max_win:
                max_win = tmp_win

print(max_win)

「pandasでpaiza問題」記事一覧へのリンク

コメント

当ブログのコンテンツが気に入ったら広告ブロックの解除(ホワイトリスト化)をご検討下さい。

Please disable your adblocker or whitelist this site!

タイトルとURLをコピーしました