알고리즘 문제

[프로그래머스] 큰 수 만들기

feelcoding 2020. 7. 30. 01:11
728x90

https://programmers.co.kr/learn/courses/30/lessons/42883

 

코딩테스트 연습 - 큰 수 만들기

 

programmers.co.kr

일단 이렇게 풀었는데 너무 복잡하게 푼 것 같아서 다시 풀어봐야겠다.

#include <string>
#include <vector>

using namespace std;

string solution(string number, int k) {
	int n = 0;
	int targetLength = number.length() - k;
	int length = number.length();
	string targetStr = "";
	bool flag = false;
	int maxNum = -1;
	int maxIndex;
	while (true) {
		for (int i = 0; i <= length - targetLength; i++) {
			if (stoi(number.substr(i, 1)) > maxNum) {
				maxNum = stoi(number.substr(i, 1));
				maxIndex = i;
				if (maxNum == 9)
					break;
			}
		}
		targetStr += number[maxIndex];
		number.erase(0, maxIndex + 1);
		length -= maxIndex;
		if (targetStr.length() == targetLength)
			break;
		maxNum = 0;
		maxIndex = 0;
	}
	return targetStr;
}
728x90