Coding_Gamesメモ_Coding_Gamesメモ_Robot_show

javaの学習にCoding_Games を知り、学習の記録としてメモ。
To debug:

System.err.println( );

を使うとデバックしやすくなる。(エラー出力は評価に影響しない)

内容

障害物にぶつかると反対方向に進むN 個のロボットが、長さLの直線通路から抜けるのにかかる最大時間を計算する

ルール

  • L フィートの直線通路にN 個のロボットが配置されている
  • ロボットは1 フィート/1 秒 の速度で移動する
  • ロボットは障害物(他のロボット)にぶつかると瞬時に進行方向が変わる
  • ロボットの大きさは計算上無視できるほど小さい
  • 各ロボットが最初にどの方向に進むか不明

インプット

1行目 通路の長さ L
2行目 ロボットの数 N
3行目 ロボットの初期位置 スペース区切りでN 個

アウトプット

すべてのロボットが通路から抜けるために必要な最大時間(秒)

使用したクラス

考え方
- ロボットは1 フィート/1 秒 の速度で移動する
ロボットが他のロボットに追いついて方向転換をすることはない

  • ロボットは障害物(他のロボット)にぶつかると瞬時に進行方向が変わる
  • ロボットの大きさは計算上無視できるほど小さい

時間とロボットの位置だけを見ると、すれ違いを行い、それぞれ直進している状態と同じ

Coding_Games:https://www.codingame.com/