[Python] 프로그래머스 - Level1 - 크레인 인형 뽑기

강주형·2022년 8월 8일
0

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

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

def solution(board, moves):
    basket = []
    n = len(board)
    answer = 0

    for m in moves:
        for i in range(n):
            if board[i][m-1] != 0:
                basket.append(board[i][m-1])
                board[i][m-1] = 0
                break
        try:
            if basket[-1] == basket[-2]:
                basket = basket[:-2]
                answer += 2
        except:
            continue
    return answer

어렵지 않게 풀었다.
딱 보니까 후입선출 연산을 이용하는 스택 문제인 것 같았음
근데 자료구조 공부를 안 한지 오래돼서 일단 직관적으로 보면서 풀음

좋아요 많이 받은 타인 코드 보니까 길이만 보면 내 코드도 괜찮은 수준인 것 같다.
문제 풀다보니까 내가 남들보다 try/except 예외 처리문을 많이 쓰는 거 같은데
이게 좋은 건지 아닌 건지 모르겠음..

타인 코드

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

  1. 슬슬 자료구조 개념 정리가 필요해보인다.
profile
Statistics & Data Science

0개의 댓글