본문 바로가기

알고리즘

프로그래머스)햄버거 만들기 -python

https://school.programmers.co.kr/learn/courses/30/lessons/133502

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

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

처음엔 단지 ingredient[i:i+4]까지만 확인했다.

 

즉, 0~3, 1~4, 2~5.... 이런 식으로

하지만 테스트케이스를 통과할 수 없었고 다른 방식으로 접근했다.

stack에 하나씩 넣어서 1,2,3,1이 완성되면 1,2,3,1을 빼내고 answer+=1을 해주었고 통과했다.

개인적으로 for문을 두번 쓴다는 게 비효율적인것 같아서 검색을 해봤지만 대부분 이런 식으로 답안을 적었다.