S[i] = stoi(A.substr(i,1)); // 문자열 받아서 1자리씩 배열에 저장
수 정렬하기
퀵 정렬을 이용하여 정렬하는 방법을 생각했음. 하지만 시간 초과...
#include <iostream>
using namespace std;
int arr[1000001];
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
// Partition
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}
// Recursion
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
int main()
{
int N;
cin >> N;
if (N < 0 || N>1000000)
{
return 0;
}
for (int i = 0; i < N; i++)
{
cin >> arr[i];
} // 배열에 저장
quickSort(arr, 0, N - 1);
for (int i = 0; i < N; i++)
{
cout << arr[i] << endl;
}
return 0;
}
찾아보니 c++ 안에 내장함수 sort() 가 있다는 것을 알았다.
헤더파일인 <algorithm> 을 추가해 sort( 시작 부분, 끝부분) 을 통해 간단하게 수를 정렬할 수 있었다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int num, tmp;
vector<int> v;
cin >> num;
for (int i = 0; i < num; i++)
{
cin >> tmp;
v.push_back(tmp);
}
sort(v.begin(), v.end());
for (int i = 0; i < num; i++)
cout << v[i] << '\n';
}
'코드 공부' 카테고리의 다른 글
c++ - 11주차 (0) | 2023.05.22 |
---|---|
C++ - 10주차 (0) | 2023.05.15 |
백준 10824번 c++ (0) | 2023.05.09 |
백준 17299번 c++ (0) | 2023.04.06 |
백준 17298번 c++ (0) | 2023.04.04 |