이 글에서는 C++을 사용하여 문자열을 아주 빠르게 뒤집는 방법을 알아보겠습니다. C++의 <algorithm> 헤더에는 reverse()라는 내장 함수가 제공되므로, 복잡한 로직을 직접 작성할 필요 없이 간단하게 문자열을 역순으로 변환할 수 있습니다. 이 함수는 컨테이너의 시작 반복자와 끝 반복자를 인수로 받아, 해당 범위 안의 요소들을 뒤집는 역할을 합니다.
입력: 문자열 "Hello World" 출력: "dlroW olleH"
알고리즘
1단계: 뒤집을 문자열을 준비한다 2단계: reverse() 함수를 이용해 문자열을 뒤집는다 3단계: 결과를 출력한다 4단계: 종료한다
예제 코드
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
string my_str = "This is a string to be reversed";
cout << "Initial state of this string: " << my_str << endl;
// reverse() 함수를 사용해 문자열을 뒤집습니다
reverse(my_str.begin(), my_str.end());
cout << "Final state of this string: " << my_str;
}
실행 결과
Initial state of this string: This is a string to be reversed Final state of this string: desrever eb ot gnirts a si sihT
참고 사항
reverse() 함수의 시간 복잡도는 O(n)으로 문자열 길이에 비례하므로 매우 효율적입니다. 만약 원본 문자열은 그대로 유지한 채 뒤집힌 새 문자열만 필요하다면, 역방향 반복자(rbegin, rend)를 활용하는 방법도 있습니다.
string reversed(my_str.rbegin(), my_str.rend());
이 방식은 기존 문자열을 수정하지 않고 뒤집힌 복사본을 생성해 주기 때문에, 원본 데이터를 보존해야 하는 경우에 특히 유용합니다.