[프로그래머스] 택배상자

최동혁·2022년 12월 10일
0

프로그래머스

목록 보기
22/68

풀이 방법

보조 컨테이너는 stack으로 구현
order를 보고 만약 stack에 존재하는 box라면 stack에 가장 끝부분과 비교한다.
만약 같다면 pop을 하고 아니라면 더이상 상자를 못 싣기 때문에 끝낸다.
만약 stack에 존재하지 않는 box라면 현재 start 인덱스부터 box 인덱스 까지 stack에 넣어준다.
그리고 start 인덱스를 현재 실은 box보다 1 더해주고 다시 루프를 돌려준다.

풀이코드

def solution(order):
    answer = 0
    stack = []
    start = 1
    for box in order:
        if box not in stack:
            for i in range(start, box):
                stack.append(i)
            start = box + 1
            answer += 1
        else:
            if stack[-1] == box:
                stack.pop()
                answer += 1
            else:
                break
    return answer
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글