https://programmers.co.kr/learn/courses/30/lessons/64061
풀이
몇 번째 열인지 알려주고(moves 배열), 그 열의 가장 위에 있는 인형을 뽑아서 바구니에 옮긴다. 인형은 바구니에 아래서부터 차곡차곡 쌓이고 같은것이 2개 연속되면 터트린다. 바구니의 구현은 스택을 이용하면 되는데 파이썬은 그냥 리스트를 사용하면 된다. (c++은 벡터로 구현하면 된다.)
인형을 뽑았을 때 바구니의 가장 위에 있는것과 비교해서 같은거면 없애고 정답 변수에 +2를 해준다. 다른거면 그냥 인형을 바구니에 올린다.(추가한다.)
python3
def solution(board, moves):
answer = 0; st=[]
for x in moves:
x-=1 #0번 인덱스부터 사용할꺼야~
for i in range(len(board)):
if board[i][x]:
if len(st)!=0 and st[-1] == board[i][x]:
st.pop()
answer+=2
else:
st.append(board[i][x])
board[i][x]=0
break
return answer
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv2. 스킬트리(파이썬) (0) | 2020.04.07 |
---|---|
프로그래머스 Lv1. K번째수(python) (0) | 2019.12.17 |
프로그래머스 Lv1. 모의고사(python) (0) | 2019.12.17 |
프로그래머스 Lv1. [2020카카오공채] 문자열 압축(python) (0) | 2019.12.17 |
프로그래머스 Lv1. 완주하지 못한 선수(python) (0) | 2019.12.17 |