#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// 1. 맨앞쪽이 커야댐, k개만 빼야함
string solution(string number, int k)
{
for (int i = 0; i < number.size() - 1; ++i)
{
if (number[i] < number[i + 1])
{
--k;
number.erase(i,1);
if (k == 0)
return number;
i = -1;
}
}
return number.substr(0, number.size() - k);
}
1. 숫자 순서가 바뀌지 않는 부분에서 그럼 앞에 큰 수만 높으면 되겠다 생각했다. 끝
다른 분이 분걸 봤는데 속도차이가 10배 차이가 나서 적었다
#include <string>
#include <vector>
using namespace std;
string solution(string number, int k)
{
string answer = "";
answer = number.substr(k);
for (int i = k - 1; i >= 0; --i)
{
int j = 0;
do {
if (number[i] >= answer[j])
{
char temp = answer[j];
answer[j] = number[i];
number[i] = temp;
j++;
}
else
break;
} while (true);
}
return answer;
}
'오늘의 알고리즘' 카테고리의 다른 글
[C++]깊이/너비 우선 탐색(DFS/BFS)단어 변환(프로그래머스 3 (0) | 2022.04.05 |
---|---|
[C++]동적계획법(Dynamic Programming) 등굣길(프로그래머스 3레벨) (0) | 2022.04.04 |
[C++]Summer/Winter Coding(~2018) 방문 길이(프로그래머스 2레벨) (0) | 2022.04.01 |
[C++]완전탐색 카펫(프로그래머스 2레벨) (0) | 2022.04.01 |
[C++]정렬 H-Index(프로그래머스 2레벨) (0) | 2022.03.31 |