
DsVector 클래스의 내부에 데이터를 저장하는 배열이 있습니다. 이 배열을 직접 뒤집는 방법은 다음과 같습니다.
#hostingforum.kr
cpp
void reverseDsVector::reverse() {
int left = 0;
int right = size - 1;
while (left < right) {
std::swap(data[left], data[right]);
left++;
right--;
}
}
이 방법은 시간 복잡도는 O(n/2) 이고, 공간 복잡도는 O(1)입니다.
DsVector의 내부 배열을 복사한 뒤 뒤집는 방법은 다음과 같습니다.
#hostingforum.kr
cpp
void reverseDsVector::reverse() {
int* temp = new int[size];
for (int i = 0; i < size; i++) {
temp[i] = data[i];
}
for (int i = 0; i < size; i++) {
data[i] = temp[size - i - 1];
}
delete[] temp;
}
이 방법은 시간 복잡도는 O(n)이고, 공간 복잡도는 O(n)입니다.
위 두 방법 모두 시간 복잡도와 공간 복잡도가 다르므로, 상황에 따라 적절한 방법을 선택해야 합니다.
2025-04-15 17:44