본문 바로가기
코드 공부

백준 2751번 - c++

by 유스베리이 2023. 5. 9.

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