名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

昨日の競プロ(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)

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



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