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

단간단간·2024년 4월 9일
0

알고리즘 문제

목록 보기
52/106

문제 링크:

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

python

def solution(order):
    origin_container = [i for i in range(len(order), 0, -1)]
    secondary_container = []
    count = 0

    while count != len(order):
        delivery = order[count]

        # 보조 컨테이너 마지막으로 올려놓은 택배와 일치하면 꺼낸다.
        if secondary_container and secondary_container[-1] == delivery:
            count += 1
            secondary_container.pop()
        elif origin_container:
            # 기존 컨테이너의 택배와 일치하면 꺼낸다.
            if origin_container[-1] == delivery:
                count += 1
                origin_container.pop()
            # 보조 컨테이너에 넣는다.
            else:
                secondary_container.append(origin_container.pop())
        # 더이상 진행 불가능
        else:
            break

    return count


if __name__ == "__main__":
    result = solution([5, 4, 3, 2, 1])
    print(result)
5
profile
simple is best

0개의 댓글