내림차순 정렬된 배열을 뒤집기

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