본문 바로가기

프로그래머스

프로그래머스 LV2 택배상자

728x90
def solution(order):
    s = []
    i = 0
    n = 0 
    while i < len(order) :
        if order[i] > n :
            n += 1
            s.append(n)
        elif s[-1] == order[i] :
            s.pop()
            i += 1
        else :
            return i
        
    return i

풀이 및 회고

i 인덱스 값 , n 현개 실을 값 두 개의 변수와 stack 을 사용해 문제를 풀었습니다.

 

1. i가 order의 길이보다 커질때 까지 반복문을 합니다.

2. 값을 비교해 현재 값이 더 작으면 스택에 저장합니다.

3. 스택과 order[i] 가 같으면 스택에 빼주고 인덱스값을 1개 올립니다.

4. 더이상 꺼낼게 없으면 인덱스값을 return 합니다. 

728x90