Lined Notebook

[Level 2] [Java] 큰 수 만들기

by HeshAlgo

<큰 수 만들기>

문제 설명

어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.

예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.

문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요.

 

제한 사항

  • number는 1자리 이상, 1,000,000자리 이하인 숫자입니다.

  • k는 1 이상 number의 자릿수 미만인 자연수입니다.

입출력 예

내 생각

처음엔 StringBuilder를 이용해 풀어보았지만 다른 사람의 풀이 중 스택을 이용해 푸는 방법이 더 간단해 보여서 수정을 했습니다. i인덱스와 i+1 인덱스의 값을 비교해 i+1의 인덱스 값보다 i 인덱스 값이 작을 경우 i의 값을 제거하고 k값도 같이 감소시킵니다. 그렇게 k가 0이 될 때 반복문을 빠져나오도록 구현했습니다.

 

푼 시간

39분 41초

 

작성 코드

실행 결과

'알고리즘 > 프로그래머스 (Level 2)' 카테고리의 다른 글

[Level 2] [Java] 멀쩡한 사각형  (0) 2020.01.01
[Level 2] [Java] 위장  (0) 2020.01.01
[Level 2] [Java] H-Index  (0) 2019.12.24
[Level 2] [Java] 전화번호 목록  (0) 2019.12.24
[Level 2] [Java] 탑  (0) 2019.12.14

블로그의 정보

꾸준히 공부하는 개발 노트

HeshAlgo

활동하기