座標系での向きの変わる移動 Python3編やってみた


はじめに

例によってまたpaizaのBランクレベルアップセット。
一応公式でコード公開オッケーされてる問題なのであしからず。

今回はBランクの本ちゃんのスキルチェックにもあった鼠小僧とほぼ同じ問題。
どっち向いてる時に座標がどう動くかだけ間違わなければ簡単に解ける。

zahyo_muki.py
x,y,n = [int(i) for i in input().split()]

direction = "N"


for i in range(n):
    a = input()

    if direction == "N":
        if a == "R":
            x += 1
            direction = "E"

        else:
            x -= 1
            direction = "W"


    elif direction == "E":
        if a == "R":
            y += 1
            direction = "S"

        else:
            y -= 1
            direction= "N"

    elif direction == "S":
        if a == "R":
            x -= 1
            direction = "W"

        else:
            x += 1
            direction = "E"


    else:
        if a == "R":
            y -= 1
            direction = "N"

        else:
            y += 1
            direction = "S"
    print(x,y)

感想

特になし。
強いて言えば初期位置でどっちの方角向いてるのかが明記されておらず、テストケースの出力で判断するしかなかったのが困った。
この問題解けれるレベル感ならBランクの鼠小僧は解けると思う。

それよりも、、、

この問題の一個手前(これより簡単なはずの位置付け)の問題に手も足も出せず完封された。。。

この時計回りの動きをどうしてもコードに落とし込めず。
とりあえず現実逃避してタイトルの問題に挑んだものの簡単すぎて拍子抜け。
まじでわからん。。。白旗