😳 백준에서 같은 문제를 풀었던 경험이 있어서 그대로 풀어봤는데 틀린다. 그리고 인터넷에 검색해보니 내 코드는 너무 길었다. 좀 더 효율적인 코드들을 따라해봤는데 너무 똑똑한 사람들이 많은 것 같다.
#include <string>
#include <vector>
using namespace std;
string solution(string number, int k)
{
string answer = "";
int numSize = number.size() - k;
int start = 0;
for (int i = 0; i < numSize; i++)
{
char maxNum = number[start];
int maxIdx = start;
for (int j = start; j <= k + i; j++)
{
if (maxNum < number[j])
{
maxNum = number[j];
maxIdx = j;
}
}
start = maxIdx + 1;
answer += maxNum;
}
return answer;
}
솔직히 나도 내가 뭐라는지 모르겠다. 흐름은 이해하겠는데 어떻게 이런생각을 가질 수 있는지 궁금하다. 많이 더 많이 풀어보면 되려나..