문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/133502
처음 작성한 코드
- 스택 리스트를 작성하여 푸는 풀이이다.
- 스택 리스트에 재료를 하나씩 넣어준다.
- 만약 끝단에서 부터 4개의 숫자가 1231의 패턴을 나타내면 햄버거 숫자를 나타내는 변수에 1을 더하고 4개의 재료들을 del 함수를 이용해 삭제한다.
def solution(ingredient):
ing_stk = []
n_hambuger = 0
for i in ingredient:
ing_stk.append(i)
if ing_stk[-4:] == [1, 2, 3, 1]:
n_hambuger += 1
del ing_stk[-4:]
return n_hambuger
# 입출력 예시
print(solution([2, 1, 1, 2, 3, 1, 2, 3, 1]))
print(solution([1, 3, 2, 1, 2, 1, 3, 1, 2]))
사실 입력을 조건으로 걸러서 스택 메모리에 부담을 주지 않으려 했는데, 모두를 받는 것이 맞는 선택이었다.
다른 코드
- del 함수 대신 이왕 스택의 pop 함수를 이용하는 방법이 있다.
del ing_stk[-4:]
##
for _ in range(4):
ing_stk.pop()
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Programmers][Python] 신고 결과 받기 (0) | 2023.03.29 |
---|---|
[Programmers][Python] 성격 유형 검사하기 (0) | 2023.03.29 |
[Programmers][Python] 공원 산책 (0) | 2023.03.27 |
[Programmers][Python] 당구 연습 (0) | 2023.03.23 |
[Programmers][Python] 둘만의 암호 (0) | 2023.03.22 |