https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3
파이썬으로 구현했다.
원래 스택을 쓰려고 했는데... 음~ 그냥 리스트 썼다.
def solution(board, moves):
answer = 0
my_doll = []
for out in moves:
for i in range(len(board)):
if board[i][out - 1] != 0:
if len(my_doll) == 0: # 인형 쌓는곳이 비어있으면
my_doll.append(board[i][out - 1])
else: # 인형이 이미 쌓여있으면
if my_doll[len(my_doll) - 1] == board[i][out - 1]: # 제일 위에꺼랑 비교, 같으면
my_doll = my_doll[:-1] # 맨 뒤에꺼 자름
answer += 2
else: # 다르면 인형 넣어
my_doll.append(board[i][out - 1])
board[i][out - 1] = 0
break
return answer
남의 코드 확인
매우 간결한 코드이다.
0이 아니면 붙이고 0으로 초기화, 스택리스트에 인형이 1개 초과로 있고
맨 뒤에꺼랑 그 앞꺼가 같으면 pop()으로 지워줌. pop(index)라서 지우고 지우고 해준거
아~ 맨 뒤에꺼 찾을 때 my_doll[len(my_doll) - 1] 이렇게 해줬는데 그냥 my_doll[-1] 하면 되는구나 ㅎㅎ
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 소수 만들기 for Python (0) | 2022.03.19 |
---|---|
[프로그래머스] 신고 결과 받기 for Python (0) | 2022.03.17 |
[프로그래머스] 키패드 누르기 for Python (0) | 2022.03.15 |
[프로그래머스] 신규 아이디 추천 for Python (0) | 2022.03.14 |
[프로그래머스] 로또의 최고 순위와 최저 순위 for python (0) | 2022.03.13 |