【Aランクレベルアップメニュー】> FINAL問題 座標系での向きの変わる移動 (paizaランク B 相当) [難易度: 1673 ±9]
※リンク先へ移動するためには[paiza]へのログインが必要です。
開始時点の x , y 座標、移動の回数 N が与えられます。
続くN行で移動の向き d1 ... dN が与えられるので、与えられた順に移動をしたときの各移動後の x , y 座標 を答えてください。
移動者ははじめ北を向いています。
なお、マスの座標系は下方向が y 座標の正の向き、右方向が x 座標の正の向きとします。
・ 移動をするごとに向く方角が変わること
・ 移動前に向いている方角によって同じ移動の向きでも座標の変化が違うこと
の 2 点に気をつけてください。
入力値(例)
3 5 1
L
出力値(例)
2 5
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php list($x, $y, $n) = explode(" ", trim(fgets(STDIN))); //左,右,上,下 $dir = [[0, -1], [1, 0], [0, 1], [-1, 0]]; $k = 0; for ($i = 0; $i < $n; $i++) { $d = trim(fgets(STDIN)); if ($d == "L") { $k += 3; $k %= 4; } else { $k += 1; $k %= 4; } $x += $dir[$k][0]; $y += $dir[$k][1]; echo sprintf("%d %d\n", $x, $y); } ?> |
感想
またpaizaの森での解答を参考にさせていただきました。一人でスラスラ解けるようになりたいです。(*'ω'*)