카카오 인턴쉽 2019 코딩테스트 - 크레인 인형뽑기 게임

이서현·2021년 4월 20일
0

Algorithm

목록 보기
7/76

크레인 인형뽑기 게임
4월 20일에 푼 문제입니다🌷

다음 문제는 stack으로 구현할 수 있다.
뽑은 인형을 stack에 push하고 뽑은 인형과 전에 뽑은 인형을 비교하기 위해 pop으로 뽑아서 비교한다.

def solution(board, moves):
    answer = 0
    #크레인으로 뽑은 인형을 담는 배열
    stack=[]
    stack.append(0)
    for num in moves:
        #doll은 뽑아진 인형의 번호이다
        doll=0
        #moves가 가리킨 배열의 가장 위의 인형을 doll에 입력한다
        for i in range(len(board)):
            if board[i][num-1]!=0:
                doll=board[i][num-1]
                board[i][num-1]=0
                break
        #board에 인형이 없을 경우 moves의 다음으로 넘어간다
        if doll==0:
            continue
        #뽑힌 인형이 있는 stack에서 가장 최신에 뽑힌 인형을 updoll에 입력한다    
        updoll=stack.pop()
        #뽑은 인형과 이전에 뽑은 인형이 있다면 결과값에 두 인형의 개수를 더한다
        if updoll==doll:
            answer+=2
        # 다르다면 두 인형을 다시 stack에 저장한다
        else:
            stack.append(updoll)
            stack.append(doll)

    return answer
profile
안녕하세요. 이서현입니다( ღ'ᴗ'ღ )

0개의 댓글