알고리즘/프로그래머스
[프로그래머스] 큰 수 만들기 c++
오오오니
2024. 1. 29. 12:19
풀이
앞자리에 큰 수가 들어가야한다.
1. 앞자리에 큰 수가 들어갈 수 있는 후보를 바로 옆가 비교하여 정한다.
2. 임의의 수 a,b,c,d가 있을때 수 abcd83이 있다면 a와 b중 큰거를 택하고 작은것을 삭제한다.
3. b 삭제 후 acd83 에서 a와 c를 비교해서 작은 것을 삭제한다.
4. c가 더 크다면 c와 d를 비교해서 더 작은 것을 삭제한다.
4. 2,3,4를 k가 0이 될 때까지 반복한다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string solution(string number, int k) {
string answer = "";
for(int i=0;i<number.size()-1;i++){
if(k==0)
break;
if(number[i]<number[i+1]){
k--;
number.erase(i,1);
i=-1;
}
}
if(k>0){
number.erase(number.size()-k,k);
}
return answer=number;
}