210109 | 백준 정렬 1427, 2750, 11650 | C++

박나연·2021년 1월 9일
0

하루백준

목록 보기
7/20

1427

1427번 : 소트인사이드

#include <iostream>
using namespace std;

int main() {
	int N;
	cin >> N;
	int arr[100];
	
	int org = N;
	int size = 0;
	while (N / 10 != 0) {
		N = N / 10;
		size++;
	}

	N = org;

	for (int i = 0; i < size + 1; i++) {
		arr[i] = N % 10;
		N = N / 10;
	}
	for (int i = 0; i < size; i++) {
		for (int j = i + 1; j < size + 1; j++) {
			if (arr[i] < arr[j])
				swap(arr[i], arr[j]);
		}
	}

	for (int i = 0; i < size+1; i++)
		cout << arr[i];
}

2750

2750번 : 수 정렬하기

#include <iostream>
using namespace std;

int main() {
	int N;
	cin >> N;
	int arr[1000];
	for(int i = 0; i < N; i++)
		cin >> arr[i];

	for (int i = 0; i < N-1; i++) {
		for (int j = i + 1; j < N; j++) {
			if (arr[i] > arr[j])
				swap(arr[i], arr[j]);
		}
	}

	for (int i = 0; i < N; i++)
		cout << arr[i] << endl;

}

11650

11650번 : 좌표 정렬하기

처음에는 모든 좌표들을 비교하여 swap해주는 반복문을 짜주었다. 그랬더니 계속 시간초과가 나서 < algorithm >라이브러리에 있는 sort함수를 사용하여 간결하게 하고, 마지막 출력부분에서 endl; 대신 '\n';을 사용하였다.

#include <iostream>
#include <vector>
using namespace std;

int main() {
	int N;
	cin >> N;

	vector<vector<int>> arr(N, vector<int>(2, 0));
	for (int i = 0; i < N; i++) {
		cin >> arr[i][0];
		cin >> arr[i][1];
	}

	for (int i = 0; i < N - 1; i++) {
		for (int j = i + 1; j < N; j++) {
			if (arr[i][0] > arr[j][0]) {
				swap(arr[i], arr[j]);
			}
			else if (arr[i][0] == arr[j][0]) {
				if (arr[i][1] > arr[j][1]) {
					swap(arr[i], arr[j]);
				}
			}
		}
	}

	for (int i = 0; i < N; i++) {
		cout << arr[i][0] << " " << arr[i][1] << endl;
	}

}

최종

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
	int N;
	cin >> N;

	vector<vector<int>> arr(N, vector<int>(2, 0));
	for (int i = 0; i < N; i++) {
		cin >> arr[i][0];
		cin >> arr[i][1];
	}

	sort(arr.begin(), arr.end());

	for (int i = 0; i < arr.size(); i++) {
		cout << arr[i][0] << " " << arr[i][1] << '\n';
	}

}

algorithm

sort 함수

sort함수의 기본값은 오름차순 정렬이다. 내림차순으로 정렬하기 위해서는 파라미터 마지막에 greather<>()을 추가하면 된다!

profile
Data Science / Computer Vision

0개의 댓글