【Aランクレベルアップメニュー】> 【座標系での向きの変わる移動】STEP: 3 座標系での移動・向き (paizaランク B 相当) [難易度: 1455 ±10]
※リンク先へ移動するためには[paiza]へのログインが必要です。
開始時点の y , x 座標 と向いている方角 D が与えられます。
続く 1 行で移動の向き d が与えられるので、その向きに移動した後の y , x 座標 を答えてください。
移動前に向いている方角によって同じ移動の向きでも座標の変化が違うことに気をつけてください。
なお、マスの座標系は左上端のマスの座標を ( y , x ) = ( 0 , 0 ) とし、
下方向が y 座標の正の向き、右方向が x 座標の正の向きとします。
入力値(例)
4 2 N
R
出力値(例)
4 3
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php list($y, $x, $d) = explode(" ", trim(fgets(STDIN))); $lr = trim(fgets(STDIN)); if ($d == "N") { ($lr == "L") ? $x += -1 : $x += 1; } elseif ($d == "S") { ($lr == "L") ? $x += 1 : $x += -1; } elseif ($d == "E") { ($lr == "L") ? $y += -1 : $y += 1; } elseif ($d == "W") { ($lr == "L") ? $y += 1 : $y += -1; } echo sprintf("%d %d\n", $y, $x); ?> |
感想
少し冗長になってしまいました。(*'ω'*)