[Python] 最後のマスまで到達できるか?

問題

マスの中に書いてある数字だけ前に進むとすると、最後まで到達できるかどうかを確認するアルゴリズム。

例えば下のマスであれば、 4 -> 4 -> 2-> 1 -> 1 と進むことで最後まで到達できる。

441002011

下のマスは到達できない。

441000211

コード

  1. マスをリストにして考える。
  2. 最も遠くまで到達することのできるマスを考え、for ループでそのマスを更新していく。
def is_reachable_last_index(A):

    furthest_index = 0
    last_index = len(A) - 1

    for i in range(last_index):
        if i <= furthest_index and furthest_index < last_index:
            furthest_index = max(furthest_index, A[i] + i)
    
    return furthest_index >= last_index

A1 = [4, 4, 1, 0, 0, 2, 0, 1, 1]
print(is_reachable_last_index(A1))

A2 = [4, 4, 1, 0, 0, 0, 2, 1, 1]
print(is_reachable_last_index(A2))