コードテスト練習-クレーン型綱引きゲーム
4414 ワード
コードテスト練習-クレーン型抽出ゲーム
ゲーム画面の2次元配列板と起動クレーンの位置の配列動作をパラメータとした場合,起動クレーン後に爆発して消えた人形の個数を求める.
簡単な5 x 5ゲームだけを考えて、コードを書き、コードを一般化して、問題の答えを見つけます.
クレーンで取り出した人形がかごの最上端の人形と同じであれば、取り出した人形をかごに入れず、かごの最上端の人形の1つだけを拭く段階です.
消すと思ったら、まずremoveを思い出しました.だからbucketremove(bucket[1])でbucketが間違っていますポップ(-1)だったので打たれました
どんな違いがありますか.しかし問題に集中し、remove関数を混同した.ここでremoveをbucket[1]=4と呼ぶと、bucketの-1値をクリアするのではなく、最初に見つかった4がクリアされるため、エラーが発生します.エラーに加えてremoveはO(n)の時間が必要なのでpopを使用することが望ましい.
ゲーム画面の2次元配列板と起動クレーンの位置の配列動作をパラメータとした場合,起動クレーン後に爆発して消えた人形の個数を求める.
#正解コード
簡単な5 x 5ゲームだけを考えて、コードを書き、コードを一般化して、問題の答えを見つけます.
def solution(board, moves):
bucket = [0]
answer = 0
for i in range(len(moves)):
for j in range(len(board)):
if board[j][moves[i]-1] != 0:
if board[j][moves[i]-1] == bucket[-1]:
bucket.pop(-1)
answer += 2
else:
bucket.append(board[j][moves[i]-1])
board[j][moves[i]-1] = 0
break
return answer
remove vs pop
クレーンで取り出した人形がかごの最上端の人形と同じであれば、取り出した人形をかごに入れず、かごの最上端の人形の1つだけを拭く段階です.
消すと思ったら、まずremoveを思い出しました.だからbucketremove(bucket[1])でbucketが間違っていますポップ(-1)だったので打たれました
どんな違いがありますか.しかし問題に集中し、remove関数を混同した.ここでremoveをbucket[1]=4と呼ぶと、bucketの-1値をクリアするのではなく、最初に見つかった4がクリアされるため、エラーが発生します.エラーに加えてremoveはO(n)の時間が必要なのでpopを使用することが望ましい.
Reference
この問題について(コードテスト練習-クレーン型綱引きゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@ghenmaru/코딩테스트-연습-크레인-인형뽑기-게임テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol