Covenant

 

카카오를 들어가고 싶은자에게 굳건히 버티고 있는 수문장 코딩테스트..



🏗️크레인 인형뽑기 게임 문제 확인

 

  • 문제 링크: [프로그래머스] 크레인 인형뽑기 게임
  • board 배열에 귀여운 카카오 인형이 담겨 있습니다. 크레인을 이용해서 바구니에 담을 수 있습니다. 연속해서 바구니에 같은 인형 두 개가 쌓이면 없어집니다.
  • moves에 크레인이 어떤 격자의 인형을 선택하는지 정보가 담겨 있습니다.
  • moves로 크레인을 동작할 때 몇 개의 인형이 제거되는지를 구하는 문제입니다.
  • board는 5x5 ~ 30x30의 크기입니다. 따라서 성능은 생각하지 않아도 되는 크기입니다.
  • Kakao Tech Blog. 2019 카카오 개발자 겨울 인턴십 코딩 테스트 문제 해설에 의하면 쉬운문제를 앞에, 어려운 문제를 뒤에 배치하였다고 합니다. 본 문제는 1번 문제이기에 쉬운 문제입니다.

 

풀이

 

  • board를 위에서 아래로 읽으며 인형(0보다 큰 수)이 있는지 확인합니다.
  • 바구니의 마지막에 들어온 인형과 바구니에 들어갈 인형이 만나면 사라지기에 12번 줄에 2를 더합니다.
  • 바구니의 마지막에 들어온 인형과 바구니에 들어갈 인형이 다르다면 터지지 않기에 바구니에 넣습니다.

 

def solution(board, moves):
    bucket = []
    ans = 0
    idx = -1

    for move in moves:
        for i in range(len(board)):
            if board[i][move - 1] > 0:
                idx = board[i][move - 1]
                board[i][move - 1] = 0
                if len(bucket) > 0 and bucket[-1] == idx:
                    ans += 2
                    bucket.pop()
                else:
                    bucket.append(idx)
                break

    return ans