[프로그래머스 파이썬] 크레인 인형뽑기

일단 해볼게·2024년 1월 30일
0

프로그래머스

목록 보기
93/106

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

def solution(board, moves):
    answer = 0
    bucket = []
    
    for i in moves:
        for j in range(len(board)):
            if board[j][i - 1] != 0: # 0이 아닐 경우
                temp = board[j][i - 1] # 바구니에 넣을 요소
                board[j][i - 1] = 0
                
                if len(bucket) != 0: # 바구니 길이가 0이 아닌 경우
                    top = bucket.pop()
                    
                    if top == temp:
                        answer += 2
                    else:
                        bucket.append(top)
                        bucket.append(temp)
                else: # 바구니 길이가 0인 경우
                    bucket.append(temp)
                    
                break
                    
    return answer
  • moves의 인덱스가 1부터 시작하므로 i - 1을 해서 맞춰야한다.
    다른 사람 코드를 보니 굳이 pop을 하지 않고 bucket[-1]로 확인해도 됐다.

다른 사람 코드

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: # 길이가 1이상일 때
                    if stacklist[-1] == stacklist[-2]: # 마지막 2개 체크
                        stacklist.pop(-1)
                        stacklist.pop(-1)
                        answer += 2     
                break

    return answer
profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글