본문 바로가기
프로그래밍/알고리즘

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

by 숙님 2023. 3. 20.
728x90

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

예시 사진

 

문제 풀이 

def solution(board, moves):
    stacklist = []
    answer = 0

    for i in moves:
        for j in range(len(board)):
            if board[j][i-1] != 0:
                stacklist.append(board[j][i-1])
                board[j][i-1] = 0

                if len(stacklist) > 1:
                    if stacklist[-1] == stacklist[-2]:
                        stacklist.pop(-1)
                        stacklist.pop(-1)
                        answer += 2     
                break

    return answer

 

- 게임 보드와 크레인이 움직이는 위치를 나타내는 리스트인 moves를 입력으로 받음

- stacklist라는 빈 리스트를 만들고 크레인이 뽑은 인형을 담아둠 

- 또한, answer라는 변수를 만들어 뽑은 인형 쌍의 개수를 저장

- 이제 moves 리스트를 반복하면서 보드의 열을 검색하고, 열에서 첫 번째로 0이 아닌 인형을 찾음

- 이 인형을 stacklist에 추가하고, 해당 위치의 보드를 0으로 설정

- 그리고, stacklist에 인형이 2개 이상 쌓이면 마지막 두 인형을 비교하여 같은 경우에는 뽑아내고, answer에 2를 더함 

- answer 반환

 

댓글