[프로그래머스] 햄버거 만들기 Lv.1 - [파이썬/python]
https://school.programmers.co.kr/learn/courses/30/lessons/133502
문제 설명
햄버거를 만든 수만큼 반환(return) 하면 되는 문제입니다.
조건이 (빵 - 야채 - 고기 - 빵) 순서대로 재료를 받아야만 햄버거를 만들 수가 있습니다.
문제에서는 숫자를 재료로 표현 (1 : 빵 / 2 : 야채 / 3 : 고기 / 1 : 빵)
고로 순서가 1231이 되면 햄버거를 하나 만들 수 있게 됩니다.
근데 문제에서는 한 가지 조건을 더 줍니다.
햄버거를 만든 후 남은 재료들의 순서가 1231가 될 경우 햄버거를 만들 수 있답니다.
211231231으로 순서대로 재료를 주면 1231이 한 번 완성되어 햄버거를 한 번만 만들 수 있을 줄 알았는데
남은 재료 21231에 1231이 순서대로 있어서 햄버거를 하나 더 만들 수 있답니다.
그래서 결국 만든 햄버거는 2개가 되어 2를 반환(return) 할 수 있답니다.
더보기
배열을 원소를 하나씩 받아와서 마지막 4개의 원소가 1231인지 확인만 하면 끝인 겁니다.
확인이 되면 마지막 4개의 원소 삭제 후, 햄버거 만든 개수 1 추가
정답 주의!!!
# 프로그래머스 | 햄버거 만들기
def solution(ingredient):
result = 0 # 만든 햄버거 개수
current_stack = [] # 현재 쌓인 재료를 추적하는 스택
for i in ingredient: # 재료 배열을 순회하면서
current_stack.append(i) # 현재 재료를 스택에 추가
# 스택의 끝 4개 재료가 [1, 2, 3, 1]인 경우
if current_stack[-4:] == [1, 2, 3, 1]:
del current_stack[-4:] # 스택에서 빵, 야채, 고기, 빵을 제거
result += 1 # 햄버거 개수 1 증가
# 최종적으로 만들어진 햄버거 개수 반환
return result
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 소수 만들기 - Lv.1 (1) | 2023.08.18 |
---|---|
[프로그래머스] 신규 아이디 추천 - Lv.1 (19) | 2023.08.18 |
[프로그래머스] 시저 암호 - Lv.1 (20) | 2023.08.17 |
[프로그래머스] 없는 숫자 더하기 - Lv.1 (23) | 2023.08.17 |
[프로그래머스] 이상한 문자 만들기 - Lv.1 (20) | 2023.08.17 |