개발 일지
큰 수 만들기 본문
● 문제 설명
어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.
예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.
문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요.
● 제한 사항
number는 1자리 이상, 1,000,000자리 이하인 숫자입니다.
k는 1 이상 number의 자릿수 미만인 자연수입니다.
● 입출력 예
● 작성 예시
using System;
public class Solution {
public string solution(string number, int k) {
string answer = "";
return answer;
}
}
● 문제 풀이
using System;
using System.Collections.Generic;
using System.Linq;
public class Solution {
public string solution(string number, int k) {
string answer = "";
List<char> char_List = new List<char>();
List<int> num_List = new List<int>();
foreach (char num in number)
{
char_List.Add(num);
}
for(int i = 0; i < char_List.Count; i++)
{
num_List.Add((int)Char.GetNumericValue(char_List[i]));
}
num_List.Sort();
for(int i = 0; i < k; i++)
{
num_List.RemoveAt(0);
}
num_List.Reverse();
for(int i = 0; i < num_List.Count; i++)
{
answer += num_List[i].ToString();
}
return answer;
}
}
이 문제는 입출력 예에서 2번째와 3번째의 큰 수는 각각 4332, 877544이어야 하지만 아닌 것으로 보아 입출력 예가 틀린 것인지 문제 설명의 맞지 않은 답이 설정되어있는 것 같습니다.
하지만 저의 코드가 문제의 취지에 맞는 코드라고 생각합니다.