글
프로그래머스 C# 큰 수 만들기(Stringbuilder)
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
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;
}
}
'프로그래밍' 카테고리의 다른 글
프로그래머스 레벨1 C# 체육복(list Remove) (0) | 2023.01.27 |
---|---|
프로그래머스 C# K번째 수(list.Clear(), list.Count) (0) | 2023.01.27 |
C# 소수 만들기(3중 for문) (0) | 2023.01.26 |
코테 공부 순서 (0) | 2023.01.26 |
프로그래머스 C# 3진법 뒤집기(int.Parse, 3진수 표기하기) (0) | 2023.01.26 |