풀이
앞자리에 큰 수가 들어가야한다.
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;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 섬 연결하기 c++ (1) | 2024.01.29 |
---|---|
[프로그래머스] 구명보트 c++ (1) | 2024.01.29 |
[프로그래머스] 조이스틱 c++ (1) | 2024.01.26 |
[프로그래머스] 체육복 c++ (0) | 2024.01.24 |
[프로그래머스] 모음사전 c++ (0) | 2024.01.22 |