코딩테스트/LeetCode
[LeetCode] 6 - Zigzag Conversion
ShovelingLife
2024. 4. 3. 13:18
class Solution {
public:
string convert(string s, int numRows) {
string res;
vector<string> v(numRows);
auto iter = s.begin();
int idx = 0;
bool flag = true;
// 1일 때 항상 일치함
if (numRows == 1)
return s;
// s의 시작점부터 실행
// 로직) 끝에 다다랐을 때 방향을 지정
while (iter != s.end())
{
v[idx].push_back(*iter);
idx = (flag) ? idx + 1 : idx - 1;
if (idx == numRows - 1 ||
idx == 0)
flag = !flag;
iter++;
}
for (const auto& item : v)
res += item;
return res;
}
};