Algorithm/Greedy

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

Yepchani 2025. 1. 15. 16:00
반응형

문제

큰 수 만들기

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

 

 

풀이

설명

주어진 숫자에서 특정 개수의 수를 제거했을 때, 남은 수들로 만들 수 있는 가장 큰 숫자를 구하는 문제입니다.

 

앞에서부터 숫자를 한 자리씩 비교하며, 앞자리 숫자가 뒷자리 숫자보다 작은 경우, 앞자리 숫자를 제거합니다.

이 과정을 최대 k번만큼 반복하면 됩니다.

 

예시 코드

function solution(number, k) {
  const stack = [];
  let drop = k;

  for (const num of number) {
    while (drop > 0 && stack.length && stack.at(-1) < num) {
      stack.pop();
      drop--;
    }
    stack.push(num);
  }

  return stack.slice(0, stack.length - drop).join("");
}

 

숫자 비교 및 제거 알고리즘에 스택을 사용해 효율적으로 처리할 수 있게 했습니다.