본문 바로가기
프로그래머스/2단계

(Python/LV2) 택배상자

by windy7271 2022. 10. 25.
728x90
반응형

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/131704

 

프로그래머스

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

programmers.co.kr

풀이:

 

시도 1

def solution(order):
    stact_left = []
    stack_right =[]
    i = 1
    while True:
        stact_left.append(i)
        if stact_left[-1] == order[0]:
            stack_right.append(order[i::])
            break
        i += 1
    if stact_left ==[[]]:
        stact_left.append(0)
    elif stack_right == [[]]:
        stack_right.pop()
        stack_right.append('False')
    now = 0
    count = 0
    while True:
        if len(stact_left) == 0 or len(stack_right) == 0:
            break
        left, right = stact_left.pop(), stack_right.pop()
        if order[now] == left:
            count += 1
            stack_right.append(right)
            now += 1
        elif order[now] == right:
            count += 1
            stact_left.append(left)
            now += 1
        else:
            break
    return count
    
 10 점

시도 2

def solution(order):
    count = 1
    i = 0
    while True:
        if order[i] - order[i+1] == 1 :
            count += 1
            order.pop(0)
            if len(order) == 1:
                break
        else:
            break

    return count
    
10점

 

시도 3..

def solution(order):
    stacks = []
    i = 1
    now = 0
    while i < len(order)+1:
        stacks.append(i)
        while stacks[-1] == order[idx]:
            now += 1
            stacks.pop()
            if len(stacks) == 0:
                break
        i += 1


    return now
다행히 100
반응형

댓글