내림차순 정렬된 배열을 뒤집기
2019. 10. 9. 12:26ㆍ알고리즘/암기
내림차순 정렬된 배열을 뒤집는 행위는 정렬을 다시하면 되지만 리스트의 길이가 짧다면 짧은 코드로 쉽게 구현할 수 있다. 리스트의 왼쪽, 오른쪽 인덱스 변수를 선언해서 줄여나가면서 swap을 하는 로직으로 구현할 수 있다
#include <vector>
#include <iostream>
using namespace std;
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) {
cin >> v[i];
}
int left = 0, right = n - 1;
while (left <= right) {
swap(&v[left], &v[right]);
left += 1;
right -= 1;
}
for (int i = 0; i < n; i++) {
cout << v[i] << ' ';
}
cout << '\n';
return 0;
}
'알고리즘 > 암기' 카테고리의 다른 글
삽입 정렬 알고리즘 (0) | 2019.10.10 |
---|---|
선택 정렬 알고리즘 (0) | 2019.10.10 |
퀵 정렬 알고리즘 (0) | 2019.10.08 |
문자열 탐색 KMP (0) | 2019.09.25 |
map을 정렬하는 방법 (0) | 2019.09.22 |