https://programmers.co.kr/learn/courses/30/lessons/17687
string tenConvertSomething(int num, int someThing) {
string result = "";
for (int i = 1; num > 0; i *= 10) {
int temp = num % someThing;
if (temp >= 10) {
result.push_back(temp + '7');
}
else {
result.push_back(temp + '0');
}
num /= someThing;
}
reverse(result.begin(), result.end());
return result == "" ? "0" : result;
}
string solution(int n, int t, int m, int p) {
string answer = "";
vector<char> v;
// 0 ~ 100
int number = 0;
int pCount = 1;
int tubeIdx = p - 1;
while (answer.size() < t) {
string toString = tenConvertSomething(number, n);
for (const auto& c : toString)
{
v.push_back(c);
}
if (pCount == p) {
answer.push_back(v[tubeIdx]);
}
number++;
if (pCount == m) {
pCount = 1;
tubeIdx += m;
}
else pCount++;
}
return answer;
}