problem solving
[프로그래머스]큰 수 만들기
Shinuk Yi
2020. 3. 9. 10:17
높은 자리수를 기준으로 차례로 검사해 큰 수를 알아낼 수 있다.
그래서 최대 k(제거해야 할 개수)만큼 제거하기위해 이중 반복문을 사용한다.
안쪽 반복문에서는 가장 큰 수를 골라내고 위치를 pos변수에 저장한다.
안쪽 반복문이 종료된 후 제거해야할 수인 k값이 남았다면 k와 현재 인덱스인 i를 갱신한다.
#include <string>
#include <vector>
using namespace std;
string solution(string number, int k) {
string answer = "";
int size = number.length() - k;
int max = 0, pos = 0;
for (int i = 0; size != answer.length(); i++) {
for(int j = i; j < i + k + 1 && j < number.length(); j++) {
if(j != i && max >= number[j]) { continue; }
max = number[j];
pos = j;
}
if(k > 0) {
k -= pos - i;
i = pos;
}
answer += number[i];
}
return answer;
}
|
cs |