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

김지원·2022년 11월 30일
0
post-custom-banner

📄 문제 설명

ingredient의 원소는 1, 2, 3 중 하나의 값이며, 순서대로 빵, 야채, 고기를 의미합니다.

빵-야채-고기-빵 순서여야지만 햄버거를 만들 수 있다.
만들 수 있는 햄버거의 개수는?

💻 문제 해결

def solution(ingredient):
    answer = 0
    
    stack=[]
    for i in ingredient:
        stack.append(i)
        if stack[-4:]==[1,2,3,1]:
            answer+=1
            # stack=stack[:(len(stack)-4)]
            for k in range(4):
                stack.pop()
            
    return answer

💡 두 가지 방법 비교

첫 번째 시도 방법

def solution(ingredient):
    answer = 0
    
    stack=[]
    for i in ingredient:
        stack.append(i)
        if stack[-4:]==[1,2,3,1]:
            answer+=1
            stack=stack[:(len(stack)-4)]
    return answer

햄버거가 만들어지면 stack을 슬라이싱하여 update하였다.

하지만, 시간 복잡도가 꽤 커보였다.
그리고 테스트 5, 12에서 시간 초과가 발생하였다.

두 번째 시도 방법 - pop()

def solution(ingredient):
    answer = 0
    
    stack=[]
    for i in ingredient:
        stack.append(i)
        if stack[-4:]==[1,2,3,1]:
            answer+=1
            for k in range(4):
                stack.pop()
            
    return answer

시간 차이가 꽤 나는 것을 확인할 수 있다.

프로그래머스 문제 사이트

profile
Make your lives Extraordinary!
post-custom-banner

0개의 댓글