😎풀이

  1. arr: s를 배열로 변환
  2. i += 2 k: k만큼은 뒤집고, k만큼은 그대로 두어야 하므로 2 k만큼 증가하며 순회
  3. 뒤집혀 적용된 배열을 문자열 형태로 변환하여 반환
function reverseStr(s: string, k: number): string {
  const arr = s.split('');

  for (let i = 0; i < s.length; i += 2 * k) {
    let left = i;
    let right = Math.min(i + k - 1, s.length - 1);

    while (left < right) {
      [arr[left], arr[right]] = [arr[right], arr[left]];
      left++;
      right--;
    }
  }

  return arr.join('');
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글