티스토리 뷰

반응형
 

프로그래머스

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

programmers.co.kr


풀이

from collections import deque
def solution(board, moves):

    stack = deque()
    now = 0
    answer = 0

    while moves:
        col = moves.pop(0) -1

        for i in range(len(board)):
            if board[i][col]:
                now = board[i][col]
                board[i][col] = 0

                if stack and stack[-1] == now:
                    stack.pop()
                    answer += 2
                    break
                
                stack.append(now)
                break

    return answer

풀이과정

1. 크레인의 작동 위치에서 인형을 뽑는다.

2. 0번부터 마지막 행까지 돌면서 인형을 찾는다. : 제일 위에 있는 인형을 뽑아야하므로 0번부터 순회

3. 인형을 찾으면, 스택에 넣을지 결정한다.

  • 스택에 값이 있고, 마지막 값이 현재 뽑은 인형과 같다면 → 마지막 인형을 없애고 answer에 2를 추가
  • 스택에 값이 없거나, 마지막 값과 현재 뽑은 인형이 다르면 → 스택에 현재 뽑은 인형을 추가한다.
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형