본문 바로가기
파이썬 코딩테스트/프로그래머스

프로그래머스 / 크레인 인형 뽑기 / 파이썬

by S.T.Lee 2022. 2. 24.

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

def delete(pick, answer):
    for p in range(len(pick)-1):
        if pick[p] == pick[p+1]:
            answer += 2
            pick.pop(p)
            pick.pop(p)
            return pick, answer
    return pick, answer

def solution(board, moves):
    answer = 0
    pick = []
    for mo in moves:
        for i in range(len(board)):
            if board[i][mo-1] != 0: #픽업할게 있을때
                pick.append(board[i][mo-1]) #목록에 넣어주고
                board[i][mo-1] = 0 #빈칸처리
                pick, answer = delete(pick, answer) #목록에 넣을때마다 겹치는게 있는지 확인
                break

    return answer

delete에서 굳이 전체를 탐색할 필요가 없음

def solution(board, moves):
    answer = 0
    pick = []
    for mo in moves:
        for i in range(len(board)):
            if board[i][mo-1] != 0: #픽업할게 있을때
                pick.append(board[i][mo-1]) #목록에 넣어주고
                board[i][mo-1] = 0 #빈칸처리
               
                if len(pick) > 1:
                    if pick[-1] == pick[-2]:
                        pick.pop()
                        pick.pop()
                        answer+=2
                break

    return answer