[TIL] 코딩테스트 연습

Daum·2021년 8월 24일
0

코딩테스트 연습

목록 보기
6/6

📎 프로그래머스 - 코딩테스트 연습

크레인 인형뽑기 게임

게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요.
(같은 모양의 인형 두 개가 바구니에 연속해서 쌓이게 되면 두 인형은 터뜨려지면서 바구니에서 사라지게 됨)

[제한사항]
1) board 배열은 2차원 배열로 크기는 "5 x 5" 이상 "30 x 30" 이하입니다.
2) board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다.
- 0은 빈 칸을 나타냅니다.
- 1 ~ 100의 각 숫자는 각기 다른 인형의 모양을 의미하며 같은 숫자는 같은 모양의 인형을 나타냅니다.
3) moves 배열의 크기는 1 이상 1,000 이하입니다.
4) moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다.
def solution(board, moves):
    basket = []
    answer = 0
    
    for move in moves:
        for i in range(len(board)):
            if board[i][move-1] != 0:
                basket.append(board[i][move-1])
                board[i][move-1] = 0
                if len(basket) > 1:
                    if basket[-1] == basket[-2]:
                        basket.pop(-1)
                        basket.pop(-1)
                        answer += 2
                break
    
    return answer![](https://velog.velcdn.com/images%2Fdauuuum%2Fpost%2F2d5714be-d8ff-433c-bab2-f00293d13644%2Ftodayilearned.svg)

0개의 댓글

관련 채용 정보