[Python/프로그래머스/2019 카카오 개발자 겨울 인턴십] 크레인 인형뽑기 게임
알고리즘/[Python] 프로그래머스

[Python/프로그래머스/2019 카카오 개발자 겨울 인턴십] 크레인 인형뽑기 게임

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

 

프로그래머스

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

programmers.co.kr

 

 


풀이 방법

 

각 열(=col)을 딕셔너리에 리스트 형태로 저장해서 pop을 하게 되면,

어떤 인형이 뽑히는지를 간단하게 구현할 수 있다.

 

 

 

 


Code

def solution(board, moves):
    ## 딕셔너리
    n = 1
    dic = {}
    for next in map(list, zip(*board)):
        for i in range(len(next)):
            if next[i]: next = next[i:]; break
        dic[n] = next[::-1]
        n += 1
 
    ## 바구니에 옮겨담는 과정
    basket = []
    result = 0
    for pick in moves:
        if dic[pick]:
            x = dic[pick].pop()
            if not basket: basket.append(x)
            else:
                if basket[-1== x:  # 연속 2개 같은 인형이라면
                    basket.pop()
                    result += 2
                else:                # 다른 인형이라면
                    basket.append(x)
    return result
cs