[프로그래머스] Lv1 - 햄버거 만들기

김멉덥·2023년 7월 22일
0

알고리즘 공부

목록 보기
63/171
post-thumbnail
post-custom-banner

문제

프로그래머스 연습문제


코드 구현

def solution(ingredient):
    answer = 0

    # 빵 야채 고기 빵
    # 1 2 3 1

    hamburger = [1, 2, 3, 1]    # 햄버거 순서
    making = []
    for i in range(len(ingredient)):
        making.append(ingredient[i])        # making 배열에 쌓인 재료들을 하나씩 넣으면서 햄버거를 만들 수 있는지 판단

        length = len(making)
        if (making[length-4:] == hamburger):    # 햄버거를 만들 수 있는 재료 순서로 쌓이면 -> 햄버거를 하나 만들었으니 answer += 1
            answer += 1
            making.pop(length-4)                # 햄버거를 만들고 나서 소진한 재로는 제거해주기
            making.pop(length-4)
            making.pop(length-4)
            making.pop(length-4)

    return answer

풀이

  • 스택을 사용하여 풀어야한다고 판단하여 making 배열을 통해 스택을 만들었다.
  • making 배열에 하나씩 쌓으면서 → 햄버거를 만들 수 있는지 검사
  • 햄버거를 만들 수 있는 순서의 재료가 쌓이면 → answer에 1을 더해주고, 재료는 사용하였으니 pop으로 제거

What I learned

  • making 배열의 길이를 따로 선언해서 구해줄 필요 없이, 스택이기 때문에 현재 쌓인 높이부터 아래로 4개의 요소까지 햄버거를 만들 수 있는 순서인지 구하면 되기 때문에 아래와 같이 간단하게 -4로 변경 가능
# 변경 전
length = len(making)
	if (making[length-4:] == hamburger):

# 변경 후
	if making[-4:] == [1, 2, 3, 1]:
profile
데굴데굴 뚝딱뚝딱 개발기록
post-custom-banner

0개의 댓글