https://programmers.co.kr/learn/courses/30/lessons/64061

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 


풀이 과정

1. 입력받은 moves를 토대로 배열을 탐색함, 배열 값이 0이면 아래 칸으로 넘어감

2. 배열 값이 0이 아니면 바구니의 맨 위랑 인형의 종류를 비교 후, 같으면 답을 2만큼 증가시켜주고 바구니의 맨 위를 비움. 그리고 현재 인형을 꺼낸 배열의 값을 0으로 만들어줌

3. 인형의 종류가 같지 않다면 바구니 맨 위에 인형을 넣고 인형을 꺼낸 곳의 배열 값을 0으로 만들어 줌

 

위와 같은 방법으로 문제를 해결하였다.

 

 


소스 코드

파이썬

def solution(board, moves):
    answer = 0
    bascket = []
    for back in moves:
        back -= 1
        for front in range(len(board)):
            if board[front][back] != 0:
                if len(bascket) != 0 and bascket[-1] == board[front][back]:
                    bascket.pop()
                    board[front][back] = 0
                    answer += 2
                else:
                    bascket.append(board[front][back])
                    board[front][back] = 0
                break

    return answer

자바스크립트

function solution(board, moves) {
    var answer = 0;
    bascket = []
    for (back of moves) {
        back -= 1
        for (var front = 0; front < board.length; front++) {
            if (board[front][back] != 0) {
                if (bascket.length != 0 && bascket[bascket.length - 1] == board[front][back]) {
                    bascket.pop()
                    board[front][back] = 0
                    answer += 2
                } else {
                    bascket.push(board[front][back])
                    board[front][back] = 0
                }
            break
            }
        }
    }
    return answer;
}

+ Recent posts