나의 개발일지

[프로그래머스] Lv.2 큰 수 만들기 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.2 큰 수 만들기 [Python, 파이썬]

YoonJuHan 2023. 8. 31. 19:17

 

def solution(number, k):
    
    num = list(map(int,number)) # 문자열을 정수 리스트로 변환
    stack = []  # 스택 리스트
    p = -1      # 스택 포인터(위치)
    
    for i in range(len(num)):
        stack.append(num[i])    # 스택에 요소 추가
        p += 1                  # 스택 위치 증가
        if p >= 1: # 스택에 두 개 이상 있을 때
            while stack[p] > stack[p-1] and k != 0: # 현재 값보다 바로 이전 값이 작고, 제거 횟수가 있으면
                stack.pop(p-1)  # 작은 값을 제거
                p -= 1          # 스택 위치 감소
                k -= 1          # 제거 횟수 감소
    
    if k != 0:  # 제거 횟수가 남아있으면 제일 뒤의 숫자를 뺀다.
        for i in range(k):
            stack.pop()
    
    return "".join(map(str, stack))     # 정수 리스트를 문자열로 변환 후 리턴
Comments