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.인형을 다 담고나서 연속 검사해서 터트리는 코드 짰었는데 그렇게 하는 거 아님. 담고 나서가 아니라 하나 담기면 연속성 검사해서 터트리면 됨.