본문 바로가기
Algorithm/프로그래머스(Programmers)

[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 큰 수 만들기

by YWTechIT 2022. 3. 25.
728x90

📍 프로그래머스 2단계 - 큰 수 만들기

그리디를 활용하는 문제인데, 너무 어렵게 생각했다. 결론적으로 k가 남아있는지 없는지에 여부에 따라 로직을 분리했다. 2번 순서까지만 작성하면 12번 테스트 케이스가 실패로 뜨는데, k 값이 남아있기 때문에 처리하는 로직을 작성해야 한다. (3번 참고)

 

  1. 반복문으로 number을 탐색한다.
  2. answer의 마지막 값이 num보다 작으면 가장 큰 수를 만들기 위해 numpush하기 위해 answer의 마지막 값을 pop해준다. 이때, 1개의 수를 제거했으므로 k를 1씩 빼준다.
  3. 반복문을 모두 돌고 난 이후에도 k가 남아있다면 k개 수만큼 제거해야하기 때문에 k번 만큼 pop을 해준다.

 

하단에는 입출력 3번째 예시의 number = 4177252841, k = 4의 풀이방법이다.

 

728x90
function solution(number, k) {
  let answer = [];

  for (const num of number) {
    while (answer.length && k > 0 && answer[answer.length - 1] < num) {
      k--;
      answer.pop();
    }
    answer.push(num);
  }

  // 테스트케이스 12번 조건
  while (k) {
    answer.pop();
    k--;
  }

  return answer.join("");
}
반응형

댓글