크레인 인형뽑기 게임
풀이과정
- bascket 리스트를 만들어 바구니에 담긴 인형들을 저장한다.
- moves를 for문을 돌면서 board에서 원소가 0이 아닌 경우에 인형을 뽑고 원소를 0으로 바꾼다. 이 때 bascket에 원소가 있으면 bascket의 마지막 원소와 뽑은 인형을 비교한다. 두 인형이 같으면 answer에 2를 더하고 bascket의 마지막 원소를 제거한다. 그렇지 않으면 bascket에 인형을 넣는다.
Python Code
def solution(board, moves):
answer = 0
bascket = []
for i in moves:
for j in board:
if j[i-1] != 0:
temp = j[i-1]
j[i-1] = 0
if bascket and temp == bascket[-1]:
answer += 2
bascket.pop()
else:
bascket.append(temp)
break
return answer
Java Code
import java.util.ArrayList;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0;
ArrayList<Integer> bascket = new ArrayList<Integer>();
bascket.add(-1);
for(int i=0; i<moves.length; i++){
for(int j=0; j<board.length; j++){
if(board[j][moves[i]-1] != 0){
if(board[j][moves[i]-1] == bascket.get(bascket.size()-1)){
answer += 2;
bascket.remove(bascket.size()-1);
}else{
bascket.add(board[j][moves[i]-1]);
}
board[j][moves[i]-1] = 0;
break;
}
}
}
return answer;
}
}