프로그래머스 풀이

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

ag2개발자 2022. 2. 10. 21:51

처음엔 시간 초과가 나왔다. 그래서 위의 이중 for문 내에서 조건을 걸어 모두 처리하려 했고 성공했다.

def solution(board, moves):
    answer = 0
    a=[]        #바구니 배열
    cnt=0       #1개도 꺼내지 않는 경우
    for i in moves:
        for j in range(len(board[i-1])):
            if board[j][i-1]==0:        #꺼내려는 칸이 비어있을 때
                if j==len(board[0])-1:
                    cnt+=1      #꺼내려는 마지막 칸이 비어있을 떄
                continue        #꺼내려는 칸이 비어있을 때 continue
            else:
                a.append(board[j][i-1])     #케릭터가 있으면 바구니에 담기
                board[j][i-1]=0     #해당 배열 값은 0으로 바꿔줘서 다시 선택이 안되게끔 함.
                if len(a)==1:       
                    
                    break
                elif a[-1]==a[-2]:      #두 숫자가 같으면
                    if len(a)>2:        
                        a=a[:-2]
                    else:
                        a=[]        #길이에 따라 처리
                    
                break
    return len(moves)-len(a)-cnt        #사라진 케릭터의 개수
    # s=a[:]
    # print(s)
    # while True:
    #     for i in range(len(a)-1):
    #         flag = True
    #         if a[i]==a[i+1]:
    #             del a[i+1]
    #             del a[i]
    #             flag = False
    #             break
    #     if flag:
    #         break
    # print(s)
    # print(a)
    # return len(s)-len(a)
    
    # while for문으로 한번더 처리를 하는 걸로 하니 시간초과 2개 났음 ㅠ.ㅠ