개발/PS

프로그래머스 Lv1 크레인 인형뽑기 게임 (파이썬)

유훈 | Yuhun 2021. 12. 30. 16:37
반응형

풀이

def solution(board, moves):
    answer = 0
    bucket = []
    for i in moves:
        for j in board:
            if j[i - 1] == 0:
                pass
            else:
                bucket.append(j[i - 1])
                j[i - 1] = 0
                break
        if len(bucket) > 1 and (bucket[-1] == bucket[-2]):
            answer += 2
            bucket = bucket[0:-2]

    return answer

2차원 배열을 slicing 해주면 되는 문제에요.

먼저 0을 만나면 그냥 지나쳐야 하는 것을 기억하고 배열에서 숫자를 뽑아 bucket에 추가하면 배열의 그 공간은 0으로 만들어 주어야 해요. (j[i-1]인 것은 moves는 1부터 시작하기 때문이에요.)

그리고 bucket의 마지막 두 요소가 같다면 두개를 빼고 slicing해주면 되겠죠?

주의할 건 두 요소가 같은 이벤트가 일어나면 answer에 +2를 해주어야 해요. 저는 처음에 +1만 했다가 고민했네요..

 

반응형