[Python] Level 2 - 큰 수 만들기

2025. 9. 18. 12:27·Coding-Test/프로그래머스
728x90
반응형

# [level 2] 큰 수 만들기 - 42883 

[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42883?language=python3)

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

🗝️알고리즘 분류

  • 그리디

💻문제 정의

문자열로 주어진 숫자에서 일정 개수만큼 지운 후 나머지 숫자들의 조합에서 가장 큰 수를 출력하는 프로그램을 작성하는 문제이다.

 

💡접근 및 설계

스택을 이용하여 접근하였다. 현재 스택에 있는 수보다 큰 수가 온다면 빈 문자열에 pop하여 최종적으로 큰 수를 만드는 방식으로 접근하려 하였다.

 

🗒️제출 코드

def solution(number, k):
    stack = []
    
    for ix in number:
        while stack and stack[-1] < ix and k > 0:
            stack.pop()
            k -= 1
        
        stack.append(ix)
        
    if k > 0: stack = stack[:-k]

    return ''.join(stack)

일단 스택에 숫자를 넣는다. 만약 넣으려는 숫자가 스택의 최상단(가장 마지막에 들어간 수) 보다 크다면, 스택 내의 숫자를 제거한다.

 

반복을 마친 후 스택에는 가장 큰 수 조합이 남아있을 것이고, k개 만큼 제거하지 못했다면 MSB에서 k개 만큼 빼준다.

 


 

728x90
반응형
저작자표시 (새창열림)

'Coding-Test > 프로그래머스' 카테고리의 다른 글

[SQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기  (0) 2026.03.02
[SQL] 그룹별 조건에 맞는 식당 목록 출력하기  (0) 2026.03.02
[SQL] 오프라인/온라인 판매 데이터 통합하기  (0) 2026.03.02
[Python] Level 1 - 가장 많이 받은 선물  (0) 2025.09.09
[Java] Level1 - 문자열 내 p와 y의 개수  (2) 2025.01.13
'Coding-Test/프로그래머스' 카테고리의 다른 글
  • [SQL] 그룹별 조건에 맞는 식당 목록 출력하기
  • [SQL] 오프라인/온라인 판매 데이터 통합하기
  • [Python] Level 1 - 가장 많이 받은 선물
  • [Java] Level1 - 문자열 내 p와 y의 개수
희완
희완
희완한 코딩일상
    반응형
  • 희완
    Code-Heewan
    희완
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Python
        • 가상환경
      • Algorithm
      • Coding-Test
        • 백준
        • 프로그래머스
        • 항해99
      • Data-Analysis
      • 웹 개발
        • django
      • AWS
      • 공모전
      • Mobile
  • 링크

    • Github
  • 300x250
  • hELLO· Designed By정상우.v4.10.3
희완
[Python] Level 2 - 큰 수 만들기
상단으로

티스토리툴바