본문 바로가기

코딩 테스트/프로그래머스

[Python] 프로그래머스 배열 만들기 4

 

문제 분석

  • input : 배열 arr → return : 배열 stk
  • 변수 i를 만들어 초기값 0으로 설정 후
  • i < len(arr) 이면  >> 종료조건 : i >= len(arr)
  1. len(stk) == 0 → stk.append(arr[i]) and i+=1
  2. len(stk) != 0 and stk[-1] < arr[i] → stk.append(arr[i]) and i+=1
  3. len(stk) != 0 and stk[-1] >= arr[i]stk.pop( )

 

코드 설계

문제 그대로..

 

정답 코드

def solution(arr):
    stk = []
    i=0

    while (i < len(arr)) :

        if len(stk) == 0 :
            stk.append(arr[i])
            i += 1
            continue
        elif len(stk) != 0 and stk[-1] < arr[i] :
            stk.append(arr[i])
            i += 1
            continue
        elif len(stk) != 0 and stk[-1] >= arr[i] :
            stk.pop()
            continue

    return stk

 

다른 사람 풀이

def sol(arr):
    stk = []
    for i in range(len(arr)) :
        while stk and stk[-1] > arr[i] :
            stk.pop()
        stk.append(arr[i])
    return stk