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

iamjinseo·2022년 8월 16일
0

문제풀이-Python

목록 보기
41/134

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

문제

프로그래머스 문제 넘 길어서 가져오기 힘듬. 가져와도 읽고싶지 않음
그래서 요약: 대충 5x5 이상 30x30이하 타일에 인형이 숫자로 치환되어 들어가 있다. board: [[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, 2, 3, 4, 5임
그리고 이제 인형뽑기 집게가 움직일 열을 리스트로 받는다 moves: [1,5,3,5,1,2,1,4]이렇게

1번 열에 가서는 4를 뽑고 5번 열에 가서는 3을 뽑겠지?
이 짓을 계속하다보면 바구니에 인형이 쌓이는데, 인형이 연속하여 쌓이면 두개를 애니팡 해버리면 됨.
두 개의 인형을 빼고나서 또 인형이 연속하여 쌓인다? 그러면 또 애니팡하면 된다.

그리하여 몇 개의 인형이 빠졌는지 반환하면 됨.


해설

별 거 없고 요구사항대로 해결하면 됨. 문제 열심히 읽을 것

코드

def solution(board, moves):
    res = []
    answer = 0
    
    for move in moves:
        for i in range(0, len(board)): # 인형 담기
            if board[i][move-1] != 0: # move위치에서 행만 움직이면서 인형 뽑기
                res.append(board[i][move-1]) #결과 리스트에 담기
                board[i][move-1]=0 #인형 뽑힘(없어짐)
                
                if len(res)>1 and res[-1] == res[-2]: #인형 연속이면 없애고 answer+1
                    res = res[:-2]
                    answer += 2
                break
    return answer

남의 코드 안보고 했는데 따봉 149개 박힌 코드랑 비슷하게 씀. (👏👏👏😎😎😎)

고난과 해결

처음에 문제 제대로 안읽고 계속 틀림
1.인형 담기 부분에서 board[i][[move-1]board[move-1][i]로 씀
2.인형을 다 담고나서 연속 검사해서 터트리는 코드 짰었는데 그렇게 하는 거 아님. 담고 나서가 아니라 하나 담기면 연속성 검사해서 터트리면 됨.

profile
일단 뭐라도 해보는 중

0개의 댓글