Recent Posts
Recent Comments
Link
Today
Total
02-09 00:00
관리 메뉴

Hippo's data

[프로그래머스] 크레인 인형뽑기 게임 Python 풀이 본문

Algorithm/프로그래머스(programmers)

[프로그래머스] 크레인 인형뽑기 게임 Python 풀이

Hippo's data 2024. 1. 24. 00:14
728x90

프로그래머스(Programmers) 크레인 인형뽑기 게임 문제

2019 카카오 개발자 겨울 인턴십 문제

난이도 : Level 1

<문제 링크>

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

 

프로그래머스

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

programmers.co.kr

 

뽑힌 인형 보관을 스택구조를 활용하여 쉽게 계산할 수 있습니다

def solution(board, moves):
    answer = 0
    # 뽑힌 인형 저장할 빈 스택 정의
    stack = []
    # move 반복 / i는 각 번호 칸 위치
    for i in moves:
        # num-> 각 번호 칸의 높이 높이 하나씩 낮아지면서 순회함 / 행동한번 후 num을 0으로 초기화
        num = 0  
        while num < len(board):
             # 인형을 만났을 때
            if board[num][i-1] != 0:
                # 스택에 인형이 존재하고 뽑힌 인형과 스택에 쌓인 마지막 인형과 같은 경우
                if len(stack) > 0 and stack[-1] == board[num][i-1]:  
                    stack.pop()  # 스택에서 해당 인형 제거
                    answer += 2  # 인형 두 개가 사라지므로 +2
                else:
                    stack.append(board[num][i-1])  # 스택에 인형 추가
                board[num][i-1] = 0  # 뽑기 기계속 인형 제거
                break  # 다음 move로 넘어감
            num += 1  # 높이 한칸 줄어듬
    return answer

->while문을 사용하였지만 for문을 이용해서 더 간결하게 표현할 수도 있겠네요,,,

728x90