본문 바로가기

난 이 분야 전문가야!/Algorithm

프로그래머스 :: 크레인 인형뽑기 - python 풀이공유

https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 

<풀이>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def solution(board, moves):
    answer = 0
    stack = []
    
    for m in moves:
        for i in range(len(board)):
            if board[i][m - 1!= 0:
                stack.append(board[i][m - 1])
                board[i][m - 1= 0     
                
                if len(stack) > 1:
                    if stack[len(stack) - 1== stack[len(stack) - 2]:
                        stack.pop(-1)
                        stack.pop(-1)
                        answer += 1
                
                break
            
    return answer*2
cs

 

<풀면서 실수한 점>

- 매번 하는 실수 인거 같다... 배열의 index는 0부터 시작이라는걸 잊지 말자 m-1을 하지 않아 out of range 에러가 발생했음.

- pop()함수를 사용하면 원소 하나가 pop되는 것을 잊고 pop(-1) pop(-2)로 두번 호출하여 값에 오류발생.

 

728x90