神経衰弱 (paizaランク B 相当)

create 2021/08/12

Paiza Python 勉強メモ

t f B! P L

問題リンク

神経衰弱 (paizaランク B 相当)

書いたコード

# カードの高さ、横の長さ、プレイヤー人数を取得
h, w, players = map(int, input().split())

# カードの並びを取得
cards = [input().split() for _ in range(h)]

# プレイヤーの持ちカードの初期値を辞書で用意
checks = {i: 0 for i in range(players)}

# ゲームの回数を取得
games = int(input())

# めくる順番の初期値を用意
player = 0

# 与えられたゲームの回数分繰り返す
for i in range(games):
        # めくるカードのインデックスが与えられるので、4種類取得して、card1,card2で参照できるようにした
    a_1, a_2, b_1, b_2 = map(int, input().split())
    card1 = cards[a_1-1][a_2-1]
    card2 = cards[b_1-1][b_2-1]
    
        # 同じカードをめくったら、辞書checksのplayerのバリューを2増やす(カード二枚もらう処理)
    if card1 == card2:
        checks[player] += 2 
        # カードが違ったら、次のプレイヤーに移る  
    else:
                # playerが最後だったら、0へループさせる
        if player == players-1:
            player = 0
        else:
            player += 1

# 辞書のバリューをfor文で展開
for v in checks.values():
    print(v)

反省

if player == players-1:
    player = 0
else:
    player += 1

これは以下へ置き換え可能。ループしたいときの書き方。

player = (player +1 ) % players

辞書で用意したけど、キーがindexと一緒なので、リストで用意してもよかった。こんな感じ。

checks = [0] * players 

for check in checks:
    print(check)

参考にさせてもらったブログ:

【解答付き】paizaスキルチェック過去問題「神経衰弱(Bランク)」を解説!

このブログを検索

自己紹介

自分の写真
Pythonが趣味です。 勉強のアウトプットを公開したくて、新たにブログ開設しました。 勉強メモのつもりだけど、日常の雑記も書きたい予定。

独学中の身で、個人的な勉強メモも投稿しているので、間違った内容が含まれることもあるかもしれません。
お気づきの際は、問い合わせフォームや、コメント欄からご指摘いただけましたら、大変助かります。

旧ブログ(更新停止中。いずれ統合するかも)ゆーるるのゆるゆる日記

参加中ランキング

PVアクセスランキング にほんブログ村

ブログ アーカイブ

QooQ