グリッド上の移動と方向ベクトル
dx、dy で移動し、範囲内に収めます
「グリッド上の移動と方向ベクトル」はCoddyKit上の無料Coding Interview Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCoding Interview Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Coding Interview Prepコースには全4レッスンが含まれています。
グリッド上を歩く
多くのシミュレーションは、行と列からなるグリッド上で行われます。トークンがどこかのマスから始まり、方向に従って1マスずつ移動します。🗺️
行と列を追跡する
位置を(r, c)の組で保持します。行は上から下へ、列は左から右へ数えます。
r, c = 0, 0方向ベクトル
各移動を(dr, dc)ベクトルとして表します。現在位置に加えるだけで、その方向へ1マス移動でき、ifの連鎖は必要ありません。
dr, dc = 0, 1 # move right4つの近傍
4方向の移動を配列に格納し、ループで処理できるようにします。これは上下左右という標準的なパターンです。
DR = [-1, 1, 0, 0]
DC = [0, 0, -1, 1]1歩進む
移動するときは、選んだベクトルを現在のマスに加えるだけです。同じ2行の処理で4方向のどれにも対応できます。
r += DR[k]
c += DC[k]範囲内にとどまる
移動する前に、そのマスがグリッドの内側にあるか確認してください。行は0からR-1まで、列は0からC-1までです。それ以外は盤面の外です。
if 0 <= r < R and 0 <= c < C:
pass許される場合は斜めにも進む
問題によっては斜めの移動も許されます。4つの角へのベクトルを加えると、8方向の近傍を作れます。
DR8 = [-1,-1,-1,0,0,1,1,1]
DC8 = [-1,0,1,-1,1,-1,0,1]左または右に曲がる
曲がるロボットでは、場合分けを書く代わりに向きのインデックスを回転させます。剰余を使えば4方向を循環できます。
facing = (facing + 1) % 4 # turn right障害物のあるマスと壁
移動する前にグリッドの値を確認します。マスが壁なら、ルールに従ってスキップするか停止してください。
if grid[r][c] == '#':
continue端がつながるグリッド
グリッドの端がつながる場合は、座標をサイズの剰余にして、右端から左端へ滑らかにつなげます。
r = (r + dr) % R
c = (c + dc) % Cベクトルが有効な理由
方向ベクトルを使えば、複雑に絡んだif-elseブロックを1つの簡潔なループに置き換えられます。分岐が少ないほど、コンテスト中のバグも減ります。
クイックチェック
方向ベクトルを使ってグリッド上を歩き、盤面の外に出ないようにする必要があります。
まとめ
位置を(r, c)で保持し、方向ベクトルを加えて移動し、4つの近傍をループで調べ、移動前には必ず範囲を確認します。🚀
よくある質問
「グリッド上の移動と方向ベクトル」レッスンは無料ですか?
はい。「グリッド上の移動と方向ベクトル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Coding Interview Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Coding Interview Prepコースには全4レッスンが含まれています。
「グリッド上の移動と方向ベクトル」で何を学びますか?
dx、dy で移動し、範囲内に収めます ブラウザで直接実行するハンズオンコードでCoding Interview Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Coding Interview Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCoding Interview Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「グリッド上の移動と方向ベクトル」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCoding Interview Prepレッスンでコードを書いて実行できますか?
はい。すべてのCoding Interview Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 状態をモデル化して一歩進める
- グリッド上の移動と方向ベクトル
- シミュレーションでのサイクル検出
- 難しいエッジケースを攻略する