본문 바로가기
카테고리 없음

[PYTHON: 프로그래머스] 햄버거만들기

by alasdkfm 2023. 7. 21.
 

프로그래머스

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

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하는 속도가 훨씬 빠른 것을 알 수 있었다. (실행 시간의 차이가 꽤 큰 것을 확인할 수 있었다) 

리스트 슬라이싱을 활용해서 요소제거
POP을 활용하여 요소 제거