본문 바로가기
코딩공부/프로그래머스 (python)

[프로그래머스] 크레인 인형뽑기 (python)

by CodingKwon 2021. 7. 16.

문제 링크 (Level 1)

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

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 

나의 코드 (python)

def solution(board, moves):
    answer = 0
	# 뽑은 인형을 담을 배열
    result = []
	
    for i in moves:
        for j in range(len(board)):
            if board[j][i-1] != 0:
                result.append(board[j][i-1])
                board[j][i-1] = 0
                break
                
        # 배열이 2개 이상 쌓였을 경우 검증        
        if len(result) >= 2:        
          for k in range(len(result)-1):
              # 2개가 같은지 검증
              if result[k] == result[k+1]:
                  # 2개를 카운팅
                  answer += 2
                  # 2개의 같은 인형을 제거
                  result = result[:k]

    return answer

 

moves에 해당하는 열에 0아 아닌 행(비어 있지 않은 행)을 찾아서 그 인형을 뽑은 인형을 담을 배열(result)에 넣어줍니다.

그리고 인형을 뽑았기 때문에 board 배열에 해당 인형을 0으로 바꿔둡니다.

인형을 뽑으면 검증을 시작합니다. 검증했을 때 같은 값이 2개가 있다면 반드시 같은 인형 2개를 제거해주어야 합니다.

댓글