Scroll indicator done
728x90

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

 

프로그래머스

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

programmers.co.kr


나는 값 4개를 따로 저장해서 비교했는데 stack[-4:] 를 다들 쓰네요 . .
4개를 pop 해서 맞으면 지우고 answer +1 아니면 다시 stack에 저장
(근데 틀렸다)


Stack (python 버전)
init : stack = []
push : stack.append()
pop : stack.pop()
top : stack[-1]
def solution(ingredient):
    answer = 0
    x = [1,3,2,1] # 거꾸로
    stack = ingredient[0:3]
    tmp = []
    for i in range(3, len(ingredient)):
        stack.append(ingredient[i])

        if ingredient[i] == 1:
            while len(tmp) < 4:
                tmp.append(stack.pop())

            if tmp == x:
                answer += 1
            else:
                for j in range(len(tmp)):
                    stack.append(tmp.pop())
            tmp.clear()
    return answer

아직도 실패의 이유를 찾지 못했다 . . 알려주세요 . .

< 수정 > - 저장하지 않고 바로 비교하기

def solution(ingredient):
    answer = 0
    x = [1,2,3,1] 
    stack = ingredient[0:3]

    for i in range(3, len(ingredient)):
        stack.append(ingredient[i])
        if stack[-4:] == x:
            answer += 1
            for j in range(4):
                stack.pop()
    return answer

 

728x90