[프로그래머스] 크레인 인형뽑기 게임Lv.1 - Python

GoshK·2022년 1월 31일
0

[프로그래머스] Python

목록 보기
45/68
post-thumbnail

[프로그래머스] 크레인 인형뽑기 게임Lv.1

나의 풀이

def solution(board, moves):
    bucket = []
    answer = 0
    moves = [i - 1 for i in moves]
    for pick in moves:
        if board[len(board) - 1][pick] == 0:
            continue
        row = 0
        while board[row][pick] == 0:
            row += 1
        bucket.append(board[row][pick])
        board[row][pick] = 0

        if len(bucket) > 1:
            if bucket[-1] == bucket[-2]:
                bucket.pop(-1)
                bucket.pop(-1)
                answer += 2

    return answer
  • 인형을 담아 줄 버킷 리스트를 만들어준다.
  • 계산을 편하게 하기 위해서 인형을 뽑을 번호는 -1을 해준다.
  • 반복을 돌면서, 만약 인형을 뽑아야 할 열과 마지막 행의 값이 0이라면 해당 열에는 인형이 없다는 뜻이기 때문에, continue 를 해주었다.
  • 0이 아니라면, 인형이 있는 행까지 행을 늘려준다.
  • 인형이 있으면, 해당 행과 열의 값을 버킷에 넣어준다.
  • 인형을 버킷에 넣고 연속해서 같은 인형이 있다면 제거를 해줘야 한다. 우선 버킷에 인형이 하나밖에 없다면 비교가 불가능하기 때문에, 버킷의 사이즈가 1 초과(2개부터) 하면서, 버킷의 마지막 인형과 바로 밑에 있는 인형이 같다면 제거하고 카운트를 2개 더해준다.

0개의 댓글