본문 바로가기
Coding Test/Programmers

[프로그래머스] 큰 수 만들기 [JAVA(자바)]

‘프로그래머스 코딩테스트 고득점 Kit’ 문제 입니다. 😀

문제 👉 <코딩테스트 연습 - 큰 수 만들기 | 프로그래머스>

1. 문제

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

2. 풀이

Greedy 를 이용한 문제 풀이

  • index는 1 부터 이전 index와 비교한다.
  1. 이전 값이 작을 때 이전 값 제거
  2. 이전 값이 클 때
    1. index가 마지막이면 값 제거
    2. index + 1

3. 코드

class Solution {
    public String solution(String number, int k) {
        StringBuilder sb = new StringBuilder();
        sb.append(number);

        int idx = 1;
        while (k != 0) {
            // 이전값이 작을 때
            if (idx >= 1 && sb.charAt(idx) > sb.charAt(idx-1)) {
                sb.deleteCharAt(idx-1);
                idx--;
                k--;
            }
            // 이전값이 클 때
            else {
                // 맨 마지막일 때
                if (idx == sb.length()-1) {
                    sb.deleteCharAt(idx);
                    idx--;
                    k--;
                }
                else {
                    idx++;
                }
            }   
        }

        return sb.toString();
    }
}


References


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글