Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발 블로그

[Programmers/파이썬] 프로그래머스(Lv.2) 택배상자 문제풀이 본문

Algorithm

[Programmers/파이썬] 프로그래머스(Lv.2) 택배상자 문제풀이

토산인 2024. 8. 22. 17:37

문제 설명

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

 

프로그래머스

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

programmers.co.kr

 

사고 흐름

1. 컨테이너, 보조 컨테이너 둘 다 스택을 사용해야겠다

2. 택배아저씨가 원하는 원소를 컨테이너에서 찾을 수 있는가? 를 기준으로 나눠야겠다

2-1. 택배아저씨가 원하는 박스가 컨테이너 첫번째 또는 보조 컨테이너 첫번째에 있다

2-2. 없다면? -> 컨테이너 박스를 보조 컨테이너로 옮긴다. 

 

예시 설명

 

문제 핵심과 알고리즘

스택 이용 

def solution(order):
    n = len(order)
    ts = []
    s = [i for i in range(n,0,-1)]
    i = 0
    
    while 1 :
        if s and s[-1]==order[i] :  # 컨테이너에서 가져감
            s.pop()
            i+=1
        elif ts and ts[-1]==order[i] :  #보조컨테이너에서 가져감
            ts.pop()
            i+=1
        else :          #택배순서랑 안맞아서 보조컨테이너로 이동 
            if s :
                ts.append(s.pop())
            else : 
                break
    return i

 

 

문제 풀면서 헤맸던 부분

문제 잘못 이해함. 

 

총평 

(소요시간: 20분) 사실 처음에 문제를 잘못이해해서 이상하게 돌아갔다. 이렇게 문제 자체를 이해못했으면 일단 다른 문제로 넘어갔다가 오는 것도 좋다.