문제 링크
풀이 방법
스택을 이용한 전형적인 문제이다. moves 배열에서 인형뽑기를 할 각 열을 꺼내주고,
board의 해당 칸이 0보다 크면(=인형이 있으면) 그 인형을 뽑는다.
스택에 넣어주기 전, 스택의 top을 검사하여 뽑은 인형과 top이 같으면 인형 수를 2 증가시킨다.
코드
1 | from collections import deque |
배운 점
파이썬의 변수 스코프에 대해서 헷갈려서 자꾸 에러가 났었다.
curr 변수가 루프를 돌면서 계속 살아있어서 만약 해당 칸에 인형이 없다고해도(=0) 전에 선택한 인형의 값이 남아있었다.
파이썬의 경우, 블록 스코프를 가지고 있는 다른 언어(C, Javascript…)와 다르게 함수 스코프이고,
오직 글로벌 변수와 로컬 변수밖에 존재하지 않는다.
이 기회를 통해서 다시 한번 파이썬의 변수 스코프에 대해 알게 되었다.
참고 링크
파이썬 변수 스코프에 관해서 - https://soooprmx.com/archives/5854