[Q]
1. 정수 배열 [arr] 로 [stk] 생성
2. i = 0
3. i가 arr의 길이보다 작으면 다음 작업을 반복
  - 만약 stk가 빈 배열이라면 arr[i]를 stk에 추가하고 i에 1을 더합니다. 
  - stk에 원소가 있고, stk의 마지막 원소가 arr[i]보다 작으면 arr[i]를 stk의 뒤에 추가하고 i에 1을 더합니다. 
  - stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다.
def solution(arr):
    stk = []
    return stk
- while i < len(arr)
- if not stk :
- stk[-1] = arr[i]
- if stk[-1] < arr[i] :
- stk[-1] =+ arr[i] , i = +1
- if stk[-1] >= arr[i] :
- stk = stk[:-1]
[A] (내가 쓴 답)
def solution(arr):
    stk = []
    i = 0
      
    while i < len(arr) :
        
        if len(stk) == 0 :
            stk.append(arr[i])
            i =+ 1
        elif len(stk) > 0 and stk[-1] < arr[i] :
            stk.append(arr[i])
            i =+ 1 
        elif len(stk) > 0 and stk[-1] >= arr[i] :
            stk = stk[:-1]
                
    return stk-> 시간 초과
- 봤더니 += 연산자 잘못 씀. -> i =+ 1 -> i += 1 변경했더니 통과
(수정한 답)
def solution(arr):
    stk = []
    i = 0
      
    while i < len(arr) :
        
        if len(stk) == 0 :
            stk.append(arr[i])
            i += 1
        elif len(stk) > 0 and stk[-1] < arr[i] :
            stk.append(arr[i])
            i += 1 
        elif len(stk) > 0 and stk[-1] >= arr[i] :
            stk = stk[:-1]
                
    return stk
[A] 다른 답들
def solution(arr):
    stk = []
    for i in range(len(arr)):
        while stk and stk[-1] >= arr[i]:
            stk.pop()
        stk.append(arr[i])
    return stk
'Algorithm > 프로그래머스' 카테고리의 다른 글
| [Python] [코딩 기초 트레이닝] / 배열 조각하기 (0) | 2024.08.17 | 
|---|---|
| [Python] [코딩 기초 트레이닝] / qr code (0) | 2024.08.17 | 
| [Python] [코딩 기초 트레이닝] / 주사위 게임 3 (0) | 2024.08.15 | 
| [Python] [코딩 기초 트레이닝] / 배열 만들기 2 (0) | 2024.08.15 | 
| [Python] [코딩 기초 트레이닝] / 문자열 겹쳐쓰기 (0) | 2024.08.15 |