파이썬 알고리즘 : 햄버거 만들기

스택

2024년 1월 12일 알고리즘 문제풀이

문제

햄버거 만들기

난이도

Lv. 1

코드

배열을 순회하면서 순서대로 필요한 재료가 나오면 만들 수 있는 갯수를 하나 추가해주고, 해당 재료들을 제거해주었다. 이 방법은 틀렸는데, 재료가 연속해서 나와야 하기 떄문이다. 연속이라고 써놓지 좀…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def solution(ingredient):
    answer = 0
    arr = [1,2,3,1]
    while True:
        idx = 0
        for x in range(len(ingredient)):
            if idx ==4:
                answer += 1
                break
            if ingredient[x] == arr[idx]:
                idx += 1
                ingredient[x] = 10
        else:
            if idx == 4:
                answer += 1
            else:
                return answer

그래서 하나씩 배열로 옮기면서, 최근 옮긴 4개로 햄버거를 만들 수 있다면 만들고 제거하도록 로직을 바꾸었다.

1
2
3
4
5
6
7
8
9
10
11
12
def solution(ingredient):
    answer = 0
    tmp = []
    burger = [1,2,3,1]
    
    for x in ingredient:
        tmp.append(x)
        if tmp[-4:] == burger:
            answer += 1
            for _ in range(4):
                tmp.pop()
    return answer