프로그래머스 크레인 인형뽑기

DARTZ·2022년 5월 30일
0

알고리즘

목록 보기
80/135
def solution(board, moves):
    board_length = len(board)
    basket = []
    
    count = 0

    for move in moves:
        for l in range(board_length):
            if board[l][move-1] != 0:
                basket.append(board[l][move-1])
                board[l][move-1] = 0

                if len(basket) >= 2 and basket[-1] == basket[-2]:
                    basket.pop()
                    basket.pop()
                    count += 2
                break

    return count

문제를 잘 못 이해했다. 어제 ssafy 보면서 느끼는건데 내가 문제를 대충 읽고 푸는 경향이 있어 시간 낭비가 심한 것 같다. 이번에도 같은 문제가 발생했다. 일단 다른 알고리즘을 풀어야해서 올려놓기만 한다.

2022.06.11 다시 풀어서 성공했다. moves 값을 하나씩 뽑았다. 해당 위치에 for을 통해 반복하여 만약에 0일 경우 패스하고 0이 아닐경우 해당 값을 basket이라는 리스트에 append 해주었다. 그리고 해당 board 값을 0으로 만드는 것을 반복하였다.

basket에는 값들이 쌓이게 되는데 만약에 basket의 갯수가 2개 이상일 경우 마지막 값과 그 전 값을 비교하여 같으면 pop을 통해 제거를 해주고 count의 값을 올려주었다.

profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글