Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발 일지

큰 수 만들기 본문

코딩 테스트/프로그래머스

큰 수 만들기

포카리tea 2021. 5. 24. 02:11

 문제 설명

어떤 숫자에서 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이어야 하지만 아닌 것으로 보아 입출력 예가 틀린 것인지 문제 설명의 맞지 않은 답이 설정되어있는 것 같습니다.

하지만 저의 코드가 문제의 취지에 맞는 코드라고 생각합니다.

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

문자열 내림차순으로 배치하기  (0) 2021.05.27
소수 찾기  (0) 2021.05.26
타겟 넘버  (0) 2021.05.23
프린터  (0) 2021.05.22
기능개발  (0) 2021.05.20