이번 글에서는 문자열을 입력받아 원본 문자열을 거꾸로 뒤집은 새로운 문자열을 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.
문제의 조건
이 문제에는 두 가지 중요한 제약 조건이 있습니다.
첫째, reverse(), split() 등과 같은 내장 String 메서드를 사용할 수 없습니다.
둘째, 성능상 흔히 쓰이는 방식인 문자열을 배열로 변환한 후 뒤집는 방법도 허용되지 않습니다.
따라서 우리는 반복문(loop)을 활용하여 문자열을 한 글자씩 순회하면서, 새로운 뒤집힌 문자열을 직접 만들어야 합니다.
구현 아이디어
핵심 로직은 간단합니다. 문자열의 각 문자를 앞에서부터 하나씩 읽으면서, 결과 문자열의 앞부분에 계속 추가하는 방식입니다. 이렇게 하면 마지막 문자가 가장 앞에 오게 되어 자연스럽게 문자열이 반전됩니다.
예제 코드
const str = 'Hello World';
const reverse = (str = '') => {
const { length } = str;
let res = '';
for(let i = 0; i < length; i++){
const el = str[i];
res = el + res;
};
return res;
};
console.log(reverse(str))코드 설명
const { length } = str;— 구조 분해 할당으로 문자열의 길이를 미리 구해 둡니다.res = el + res;— 현재 문자를 결과 문자열 앞에 붙여 나가며 역순으로 재구성합니다.- 모든 문자를 순회한 후 완성된
res를 반환합니다.
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
dlroW olleH
마무리
이처럼 내장 메서드나 배열 변환 없이도 단순한 반복문만으로 문자열을 손쉽게 반전시킬 수 있습니다. 이 접근 방식은 코딩 테스트나 면접에서 자주 등장하는 기본적인 문자열 처리 문제이므로, 로직을 잘 이해해 두면 큰 도움이 됩니다.