[프로그래머스] 크레인 인형뽑기 게임 (Level 1)

imyo·2020년 10월 7일
0

알고리즘

목록 보기
29/39
post-thumbnail

크레인 인형뽑기 게임


풀이과정

  1. bascket 리스트를 만들어 바구니에 담긴 인형들을 저장한다.
  2. 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;
    }
}
profile
(●⁰౪⁰●)

0개의 댓글