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

[프로그래머스] LV2 큰 수 만들기 | 파이썬

애플파ol 2025. 5. 21. 11:35

Solution:

def solution(number,k):
    stack=[] # 새로운 값을 담을 통 필요
    
    for i in number:
        # 스택이 비지않고, 제거 횟수 남아야 하고, 스택의 마지막 숫자가 현재 수(i)보다 작다면
        while stack and k>0 and stack[-1] <i:
            stack.pop()
            k=k-1
        stack.append(i)

    
    if k>0:
        stack=stack[:-1]
        stack=''.join(stack)
    else:
        stack=''.join(stack)
    return stack

 

 

Skills:

  1. 'stack의 가장 최근값' 과 '새롭게 추가될 값' 의 비교방식을 생각해 내야함.
  2. 조건문은 if와 while문 2가지임
    - while 문 : 반복 + 조건
    - if 문 : 조건