프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr


코드
python
닫기def solution(ingredient):
lst = []
cnt = 0
for i in ingredient :
lst.append(i)
if lst[-4:] == [1,2,3,1]:
cnt+=1
# lst = lst[:-4]
for _ in range(4):
lst.pop()
return cnt
이 문제는 STACK을 활용하여, [1,2,3,1]이 나오면 제거를 하는방식으로 풀어야 한다.
평소 리스트에서 요소 제거 할 때 POP을 활용하는 것이 속도가 빠른 것은 알고 있었지만,
FOR문을 돌며 4번 POP하는 것 보다는, 리스트 슬라이싱 하는 것이 더 효율적일 것이라 생각하고
초반에 슬라이싱을 활용해서 코드를 작성을 했는데, POP하는 속도가 훨씬 빠른 것을 알 수 있었다. (실행 시간의 차이가 꽤 큰 것을 확인할 수 있었다)

