0Pricing
Coding Interview Prep · レッスン

グリッド上の移動と方向ベクトル

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 right

4つの近傍

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 状態をモデル化して一歩進める
  2. グリッド上の移動と方向ベクトル
  3. シミュレーションでのサイクル検出
  4. 難しいエッジケースを攻略する
← Coding Interview Prepに戻る