水面下の夢

競プロやイラストに興味があります.メインブログがここ.同人サークル「かのらぶ」のページはこっち( https://yumechi0525.amebaownd.com ).ブログアイコンはYaQ(@8_9_00)さんから.

昨日の競プロ(2015/05/28)

解いたのにまとめないのはNG.

ARC 005 B

問題

B: P-CASカードと高橋君 - AtCoder Regular Contest 005 | AtCoder

回答

Submission #417202 - AtCoder Regular Contest 005 | AtCoder

指示通りに文字列を読みこむ.上下左右に来たら反転.
上下左右を反転させるだけ.上下,左右のセット.下で跳ね返っても,右行けるなら右のまま.
それと読み込んだ順と読み込んだ文字セットの上下左右がうまく対応してなかったので,悪戦苦闘.
それさえ乗り越えればOKでした.テストケースサマサマ.

x, y, w = input().split()
x, y = int(x) - 1, int(y) - 1
table = [list(input()) for _ in range(9)]
res = ""
for _ in range(4):
    res += str(table[y][x])
    if "R" in w:
        x += 1
        if x > 8:
            x = 7
            w = w.replace("R", "L")
    elif "L" in w:
        x -= 1
        if x < 0:
            x = 1
            w = w.replace("L", "R")
    if "U" in w:
        y -= 1
        if y < 0:
            y = 1
            w = w.replace("U", "D")
    elif "D" in w:
        y += 1
        if y > 8:
            y = 7
            w = w.replace("D", "U")
 
print(res)

馬鹿丁寧に書いてしまったのですが,もう少し簡単に書く方法はあると思います.
文字の置き換えとかもこの回答方針だと必要ですが,場合によっては必要ないかも.



さて,なんとなく見返すと今なら解けそう問題って結構ありますね.
少しづつパワーアップしてきたのかな?
回答数を伸ばしていきたいですね.(もちろんコンテストにも参加したい)