저고데

[프로그래머스]크레인 인형뽑기 게임 본문

프로그래머스

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

진철 2023. 1. 15. 21:05
728x90
반응형

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/64061

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

본 문제를 요약하자면 다음과 같다.

인형이 어떻게 쌓여있는지 나타내는 배열인 board가 주어지고 크레인의 이동 순서를 나타내는 배열인 moves가 주어진다.

크레인이 이동한 곳에 인형이 있다면 인형을 일렬로 쌓는다.

일렬로 쌓은 인형 중에서 동일한 인형 두 개가 연속으로 있으면 인형을 제거하는데, 제거된 인형의 개수를 반환하는 것이다.

 

코드를 작성하기 위한 순서는 다음과 같다.

1. 크레인이 이동하였을 때, 인형이 있으면 새로운 배열에 넣어준다.

2. 배열에서 동일한 인형 두 개가 연속으로 있으면 인형을 제거해준다.

def solution(board, moves):
    answer = 0
    bucket=[]
    for i in moves:
        for j in range(len(board)):
            num=board[j][i-1]
            if num!=0: #0이면 인형이 아니기 때문에 0이 아닐 때만 고려해준다.
                bucket.append(num)
                board[j][i-1]=0 #인형을 뽑은 상태이기 때문에 없다는 것을 나타내기 위해 0을 대입하여준다.
                if len(bucket)>=2: #연속된 인형이 두 개일 때, 제거가 가능하기에 배열의 크기가 2 이상일 때만 고려해준다.
                    if bucket[-1]==bucket[-2]:
                        bucket.pop()
                        bucket.pop()
                        answer+=2
                break          

    return answer
728x90
반응형