Programing/Algorithm

JavaScript로 배우는 문자열 뒤집기 (String Reverse)

2025. 5. 23. 00:03
반응형

문자열 뒤집기의 개념과 활용

문자열을 뒤집는 작업은 알고리즘 입문 문제에서 자주 등장하는 주제입니다. 이 연산은 단순히 글자의 순서를 반대로 정렬하는 것이지만, 그 과정을 구현하는 방식에 따라 자바스크립트의 배열, 반복문, 함수형 프로그래밍 개념 등을 함께 익힐 수 있는 학습 기회가 됩니다.

회문 검사(palindrome)나 문자열 정렬, 사용자 입력 처리 등 실무적인 상황에서도 문자열을 뒤집는 로직은 종종 활용됩니다. 자바스크립트에서 문자열은 불변(immutable)이기 때문에, 이를 다루기 위해서는 새로운 문자열을 생성해야 합니다.


split().reverse().join()을 이용한 기본 방법

가장 널리 알려진 방식은 배열 메서드를 조합하여 문자열을 뒤집는 방법입니다.

function reverseString(str) {
  return str.split('').reverse().join('');
}

console.log(reverseString('hello')); // 'olleh'

동작 흐름 설명

  1. split(''): 문자열을 문자 배열로 변환 → ['h', 'e', 'l', 'l', 'o']
  2. reverse(): 배열 순서를 뒤집음 → ['o', 'l', 'l', 'e', 'h']
  3. join(''): 배열을 문자열로 다시 합침 → 'olleh'

장점: 코드가 짧고 직관적이며 가독성이 좋습니다.
단점: 내부적으로 배열을 생성하므로, 매우 긴 문자열 처리에는 비효율적일 수 있습니다.


for문을 활용한 수동 구현 방식

반복문을 활용하여 문자열을 뒤집는 방식은 알고리즘 흐름을 직접 구현하면서 자바스크립트 기본 문법을 익히는 데 유용합니다.

function reverseStringWithLoop(str) {
  let reversed = '';
  for (let i = str.length - 1; i >= 0; i--) {
    reversed += str[i];
  }
  return reversed;
}

console.log(reverseStringWithLoop('world')); // 'dlrow'

동작 흐름 설명

  1. 빈 문자열을 준비합니다.
  2. 문자열의 마지막 문자부터 앞쪽으로 순회하면서, 하나씩 추가합니다.

장점: 반복문의 기본 구조를 이해하는 데 적합합니다.
단점: += 연산으로 문자열을 계속 생성하므로 성능이 떨어질 수 있습니다.

관련 포스트: JS 반복문 기초 정리


reduce()를 사용한 함수형 스타일

reduce()를 사용하면 문자열을 함수형 방식으로 뒤집을 수 있습니다.

function reverseStringWithReduce(str) {
  return str.split('').reduce((acc, char) => char + acc, '');
}

console.log(reverseStringWithReduce('openai')); // 'ianepo'

동작 흐름 설명

  1. 문자열을 배열로 변환합니다.
  2. reduce를 통해 각 문자를 기존 누적값 앞에 붙이면서 결과를 생성합니다.

장점: 함수형 패턴 학습에 적합합니다.
단점: 초보자에게는 로직의 흐름이 다소 추상적으로 느껴질 수 있습니다.


실행 결과 비교

reverseString('hello');            // 'olleh'
reverseStringWithLoop('world');    // 'dlrow'
reverseStringWithReduce('openai'); // 'ianepo'

세 방식 모두 동일한 기능을 수행하지만, 구현 방식과 스타일에 따라 다음과 같은 차이가 있습니다.

 

방식 특징 추천 대상
split + reverse + join 간결하고 직관적 실무에서 빠른 구현이 필요할 때
반복문 수동 구현 흐름을 명확하게 확인 가능 알고리즘 구조를 연습할 때
reduce 함수형 구현 축약된 코드, 함수형 연습에 적합 함수형 스타일에 관심 있는 경우

마무리 및 추천 자료

문자열 뒤집기는 자바스크립트의 다양한 기능을 종합적으로 활용할 수 있는 좋은 연습 주제입니다. 이 과정에서 문자열의 불변성, 배열 메서드, 반복문, 고차 함수의 사용법을 자연스럽게 익힐 수 있습니다.

아래 무료 리소스를 통해 관련 내용을 더욱 심화 학습할 수 있습니다:

  • 프로그래머스 JavaScript 입문 강의
  • LeetCode 문자열 문제 모음
  • replit JavaScript 실습 환경

기초 문법을 다양한 방식으로 반복 연습하는 습관은 개발자로서의 실력을 길러주는 가장 확실한 방법입니다.

반응형

'Programing > Algorithm' 카테고리의 다른 글

JavaScript로 구현하는 소수 판별 (Prime Check)  (0) 2025.05.26
JavaScript로 구하는 최대공약수와 최소공배수 (GCD / LCM)  (0) 2025.05.26
JavaScript로 검사하는 회문 문자열 (Palindrome Check)  (0) 2025.05.23
JavaScript로 푸는 아나그램 판별 (Anagram Detection)  (0) 2025.05.23
피보나치 수열의 이해와 자바스크립트 구현  (0) 2025.05.22
JavaScript로 이해하는 하노이의 탑 (Tower of Hanoi)  (0) 2025.05.22
JS 피보나치(Fibonacci)  (0) 2025.05.22
자바스크립트로 팩토리얼 계산하기: 재귀함수 vs 반복문  (0) 2025.05.22
'Programing/Algorithm' 카테고리의 다른 글
  • JavaScript로 검사하는 회문 문자열 (Palindrome Check)
  • JavaScript로 푸는 아나그램 판별 (Anagram Detection)
  • 피보나치 수열의 이해와 자바스크립트 구현
  • JavaScript로 이해하는 하노이의 탑 (Tower of Hanoi)
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    디자인패턴
    It
    자바
    IT블로그
    SQL
    IT·컴퓨터
    자바스크립트유틸
    IT 관련
    Java
    JavaScript
    기초
    사고 싶은 책
    자바스크립트
    읽고 싶은 책
    블로그
    jsp
    위시리스트
    js패턴
    php
    iT's MY LiFE
Dongkkase
JavaScript로 배우는 문자열 뒤집기 (String Reverse)
상단으로

티스토리툴바