[프로그래머스] 42883번 : 큰 수 만들기

James·2023년 12월 24일

코딩 테스트

목록 보기
38/41
post-thumbnail

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42883

풀이

[프로그래머스] 42883번 : 큰 수 만들기 🥈(LEVEL2)
⏰ 걸린 시간 : 40분 🔥 오답필요
시간복잡도 : O(N)

  • 알고리즘 유형 : [스택]

✔️ [문제 접근 방법]

  1. 수를 돌면서 stack의 값이 있고 마지막 값이 현재 for문의 값보다 작고 k가 0보다 크면
  2. 값을 뺀다. k도 -1 씩해준다.
  3. 모든값은 stack에 넣어주고
  4. 예외로 k가 0이 아닐 경우 k 만큼 뒤에서 빼면된다.

✔️ [주의 사항]
0. combolations로 접근하면 시간초과가 발생한다. O(N^2)

코드(code)

def solution(number, k):
    answer = ''
    stack = []
    for num in number:
        while stack and stack[-1] < num and k>0:
            k-=1
            stack.pop()
        stack.append(num)
    if k != 0 :
        stack = stack[:-k]
    answer = "".join(stack)

    return answer

회고

stack으로 접근하면서 풀면 쉽다.

profile
의미있는 성장의 태도, 긍정적인 사고를 지닌 Deveolper

0개의 댓글