728x90
SMALL

C#

 

 

 

using System;
using System.Text;

public class Solution {
    public string solution(string number, int k) {
        string answer = "";
        number = "9" + number;
        StringBuilder sb = new StringBuilder(number);
        int index = 0;
        
        for(int i = 0; i < k; i++)
        {
            while (true)
            {
                if(index + 1 == sb.Length)
                {
                    sb.Remove(index, 1);
                    index--;
                    break;
                }

                if(sb[index] < sb[index + 1])
                {
                    sb.Remove(index, 1);
                    index--;
                    break;
                }
                
                index++;
            }
        }

            return answer = sb.Remove(0,1).ToString();
    }
}

 

 

 

// 모르겠어서 다른 분의 코드를 참고했다. stringbuilder를 몰랐었다.

// stringbuilder는 string이긴 한데 string의 내용을 바꿀 수 있는 거. using System.Text;가 필요하다.

// stringbuilder의 Remove는 지정된 위치에서 지정된 길이 만큼을 지워주는 것.

 

https://developer-talk.tistory.com/342

 

[C#]StringBuilder 사용 방법

StringBuilder란? C#의 StringBuilder는 변경할 수 없는 string과 달리 변경 가능한 문자열을 나타내는데 사용하는 클래스입니다. string 객체는 값이 변경되면 메모리에서 이전 참조 값을 버리고 새로운 참

developer-talk.tistory.com

 

 

 

using System;
using System.Text;

public class Solution {
    public string solution(string number, int k) {
        string answer = "";
        StringBuilder sb = new StringBuilder();
        int n=number.Length-k;
        
        //자리수 만큼 반복 
        for(int i=0, idx=-1; i<n; i++) 
        {
            char max = '0'; 
            // idx 다음 인덱스부터 k+i와 작거나 같을 때 까지 반복한다. 

			for(int j=idx+1; j<=k+i; j++)
            {
                //비교해서 max값 넣어주기
                if(max<number[j])
                {
                    max = number[j];
                    idx = j;
                }
            }
            sb.Append(max); //StringBuilder에 추가한다.
        }
        
        answer = sb.ToString();    
        return answer;
    }
}
728x90

설정

트랙백

댓글