강의로 돌아가기
개밥자

왜 틀리죠 테케 3개만 맞고 다틀리네요

뭐가 문제지 greedy로 안풀어서 그런가 시간초과는 안뜨는데

작성중인 코드―solution.cpp
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
31
32
33
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

string solution(string number, int k) {
    string answer = "";
    int ans=-1;

    vector<int> v;

    for(int i=0;i<number.size();i++)
        v.push_back(0);

    for(int i=0;i<number.size()-k;i++)
        v[i]=1;
    sort(v.begin(),v.end());
    do{
        string a;
        for(int i=0;i<v.size();i++){
        if(v[i]==1)
            a+=number[i];
        }

        int val = stoi(a);
     //   cout<<val<<" ";
        ans=max(ans,val);
    }while(next_permutation(v.begin(),v.end()));


    return to_string(ans);
}
1 개의 답변
SoftVanilla

런타임 에러가 나지는 않나요?
문자열이 integer 범위를 벗어나면 제대로 동작하지 않을 것 같습니다.

number는 1자리 이상, 1,000,000자리 이하인 숫자입니다

  • 1부터 1000000사이의 숫자가 아니라 1000000자리의 숫자였군요. 고맙습니다

    Deleted user―Jun 26, 2021 00:10
답변 쓰기
This input form supports markdown syntax. Please refer to 마크다운 가이드.