Dice
解き方
サイコロとそのサイコロの動かし方を記憶した辞書を用意し指示に従ってサイコロを動かす。
サイコロの初期配置はリストで表すと[1, 2, 3, 4, 5, 6]。
指示がきたら辞書を参照する。例えば、Northという指示の場合、
"North": (1, 5, 2, 3, 0, 4) となっている。タプルのそれぞれの値は現在のサイコロのインデックスを北方向に一回転した後のインデックスとなっている。
dice[0]にはdice[1]、dice[1]にはdice[5]の値を入れていく。
コード(python)
operation = {"North": (1, 5, 2, 3, 0, 4), "East": (3, 1, 0, 5, 4, 2), "West": (2, 1, 5, 0, 4, 3), "South": (4, 0, 2, 3, 5, 1), "Right": (0, 2, 4, 1, 3, 5), "Left": (0, 3, 1, 4, 2, 5)} while True: n = int(input()) if n == 0: break dice = [i+1 for i in range(6)] ans = 1 for _ in range(n): # stripを使わないとRuntimeError indices = operation[input().strip()] dice = [dice[i] for i in indices] ans += dice[0] print(ans)