문제
코딩테스트 연습 - 크레인 인형뽑기 게임
[[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
풀이
- stack을 이용해서 풀었다
- moves의 배열을 돌면서 board의 열을 moves원소의 -1로 두고, 행을 board의 길이만큼 돌면서 인형을 찾습니다
- 그리고 인형을 발견하면 stack에 인형을 쌓고 해당 board의 값을 0으로 만들고 break
- 그 후 stack의 길이가 1 이상이 되면 같은 인형이 나올 수 있으므로 while문을 stack의 길이가 1 이상일 때로 지정
- stack의 마지막 원소와 뒤에서 두 번째 원소가 같은 경우, answer에 없어진 인형의 개수(2)를 더하고 stack을 조절
코드
def solution(board, moves):
answer = 0
stack = []
for move in moves:
for c in range(len(board)):
if board[c][move-1] != 0:
stack.append(board[c][move-1])
board[c][move-1] = 0
break
while len(stack) > 1:
if stack[-1] == stack[-2]:
answer += 2
stack = stack[:-2]
else:
break
return answer
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Lv1. 로또의 최고 순위와 최저 순위 (0) | 2021.05.14 |
---|---|
[Programmers] Lv1. 모의고사 (0) | 2021.05.14 |
[Programmers] Lv1. 키패드 누르기 (0) | 2021.05.13 |
[Programmers] Lv1. 체육복 (0) | 2021.05.12 |
[Programmers] Lv1. K번째수 (0) | 2021.05.12 |
댓글