React

02 문자열 뒤집기

문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라.

My solution

리턴 없이 리스트 내부를 직접 조작하라고 하는데 js에서는 reverse() 메서드만 사용하면 바로 풀릴 것 같다.
우선 아래와 같이 풀었다.

Code

const reverseString = function (s) { return s.reverse(); };
JavaScript
복사

Solution

1. 투포인터를 이용한 스왑

이 방식이 전통적이다.(7장) 2개의 포인터를 이용해 범위를 조정해가며 풀이하는 방식으로 점점 범위를 좁혀 가며 스왑하는 형태로 푼다.
const reverseString = function (s) { let lt = 0; let rt = s.length - 1; while (lt < rt) { [s[lt], s[rt]] = [s[rt], s[lt]]; lt++; rt--; } return s; };
JavaScript
복사
코드 라인이 많아져서 가독성은 떨어졌지만 성능은 더 빠른 것으로 나왔다.(파이썬은 오히려 기본 제공되는 기능(reverse)이 더 빠르다.)

2. 파이썬다운 방식 Pythonic way // 파이썬 슬라이싱은 매우 빠르다

내 풀이와 동일하다고 볼 수 있다.
s.reverse()나 s[::-1] ( 1은 기본값이고 -1은 뒤집는다. )으로 가능하다.