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;
}
};
'코딩테스트 > LeetCode' 카테고리의 다른 글
[LeetCode] 136. Single Number (0) | 2024.06.13 |
---|---|
[LeetCode] 1 - Two Sum (0) | 2024.04.03 |
[LeetCode] Sqrt(x) (0) | 2024.03.25 |
[LeetCode] 153. Find Minimum in Rotated Sorted Array (0) | 2024.03.05 |
[LeetCode] Majority Element (0) | 2023.12.19 |